MailAttachment
Attachment オブジェクトによって、Email
オブジェクト内のファイルを参照することができます。 MailAttachment オブジェクトは MAIL New attachment
コマンドによって作成されます。
Attachment オブジェクト
Attachment オブジェクトは、次の読み取り専用プロパティや、関数を提供します:
.cid : Text 添付ファイルの ID を格納します |
.disposition : Text Content-Disposition ヘッダーの値を格納します |
.getContent() : Blob 添付オブジェクトの中身を BLOB として返します |
.name : Text 添付ファイルの名前と拡張子を格納します |
.path : Text 添付ファイルの POSIX パス (存在すれば) を格納します |
.platformPath : Text カレントプラットフォームのシンタックスで表現された添付ファイルのパスを返します |
.type : Text 添付ファイルの content-type を格納します |
MAIL New attachment
MAIL New attachment( path : Text { ; name : Text {; cid : Text{ ; type : Text { ; disposition :Text } } } } ) : 4D.MailAttachment
MAIL New attachment( blob : Blob { ; name : Text {; cid : Text{ ; type : Text { ; disposition :Text } } } } ) : 4D.MailAttachment
引数 | 型 | 説明 | |
---|---|---|---|
path | Text | -> | 添付ファイルのパス |
blob | BLOB | -> | 添付を格納した BLOB |
name | Text | -> | メールクライアントが添付を指定するのに使用する名前 + 拡張子 |
cid | Text | -> | 添付の ID (HTMLメッセージのみ)、あるいは cid が不要な場合は "" (空の文字列) |
type | Text | -> | content-type ヘッダーの値 |
disposition | Text | -> | content-disposition ヘッダーの値: "inline" あるいは "attachment" |
戻り値 | 4D.MailAttachment | <- | Attachment オブジェクト |
|
説明
MAIL New attachment
コマンドは、 Email オブジェクト に追加できる添付オブジェクトを作成します。
添付を定義するには、パスまたは Blob を引数として渡します。
-
path: システムシンタックスで表現された添付ファイルのパスを テキスト 値で渡します。 完全なパス名、または単純なファイル名を渡すことができます (ファイル名のみの場合、4D はプロジェクトファイルと同じディレクトリ内を検索します)。
-
blob: 添付そのものを BLOB で渡します。
任意の name 引数として、添付を指定するためにメールクライアントが使用する名前と拡張子を渡すことができます。 name が省略された場合:
- ファイルパスを渡していれば、そのファイル名と拡張子が使用されます。
- BLOB を渡していれば、拡張子がないランダムな名前が自動的に生成されます。
任意の cid 引数を使用すると、添付ファイルの内部ID を渡すことができます。 この ID は Content-Id
ヘッダーの値で、HTMLメッセージにおいてのみ使用されます。 cid を使い、\<img src="cid:ID">
のような HTMLタグによってメッセージ本文で定義された参照と添付ファイルが紐づけられます。 これはつまり、添付ファイルの中身 (例: ピクチャー) がメールクライアント上ではメッセージ本文内に表示されるべきであることを意味しています。 最終的な表示は、メールクライアントによって若干異なる可能性があります。 cid を使用したくない場合、空の文字列を引数として渡します。
任意の type 引数を渡すと、添付ファイルの content-type
を明示的に設定することができます。 たとえば、MIMEタイプを定義する文字列 ("video/mpeg"など) を渡すことができます。 この content-type の値は拡張子とは関係なく添付ファイルに対して設定されます。 MIMEタイプについての詳細は、Wikipedia 上のMIME に関するページ を参照ください。
この引数が省略された場合、あるいはこの引数に空の文字列が渡された場合はデフォルトで、添付ファイルの content-type
は拡張子に基づいて設定されます。 主な MIMEタイプについては、以下のルールが適用されます:
拡張子 | Content-Type |
---|---|
jpg, jpeg | image/jpeg |
png | image/png |
gif | image/gif |
application/pdf | |
doc | application/msword |
xls | application/vnd.ms-excel |
ppt | application/vnd.ms-powerpoint |
zip | application/zip |
gz | application/gzip |
json | application/json |
js | application/javascript |
ps | application/postscript |
xml | application/xml |
htm, html | text/html |
mp3 | audio/mpeg |
その他 | application/octet-stream |
任意の disposition 引数を渡して、添付ファイルの content-disposition
ヘッダーを指定できます。 "Mail" 定数テーマ内の、以下の定数のいずれか 1つを渡すことができます:
定数 | 値 | 説明 |
---|---|---|
mail disposition attachment | "attachment" | Content-disposition ヘッダーの値を "attachment" に設定します。これは添付ファイルはメッセージ内でリンクとして提供される必要があることを意味します。 |
mail disposition inline | "inline" | Content-disposition ヘッダーの値を "inline" に設定します。これは添付ファイルはメッセージ本文内の、"cid" の位置にレンダリングされる必要があることを意味します。 レンダリングの結果はメールクライアントによって異なります。 |
disposition 引数が省略された場合はデフォルトで:
- cid 引数が使われていた場合、
Content-disposition
ヘッダーは "inline" に設定されます。 - cid 引数が渡されていない、あるいは空の文字列が渡されていた場合、
Content-disposition
ヘッダーは "attachment" に設定されます。
例題 1
ユーザーが選択したファイルを添付し、HTML 本文に画像を埋め込んだメールを送信します:
$doc:=Select document("";"*";"添付するファイルを選択したください";0)
If (OK=1) // もしドキュメントが選択されていれば
C_OBJECT($email;$server;$transporter)
$server:=New object
$server.host:="smtp.mail.com"
$server.user:="test_user@mail.com"
$server.password:="p@ssw@rd"
$transporter:=SMTP New transporter($server)
$email:=New object
$email.from:="test_user@mail.com"
$email.to:="test_user@mail.com"
$email.subject:="添付の付いたテストメッセージです"
// ファイルをダウンロードするリンクを追加します
$email.attachments:=New collection(MAIL New attachment(Document))
// インラインピクチャーを挿入します (cid を使用)
$email.attachments[1]:=MAIL New attachment("c:\\Pictures\\4D.jpg";"";"4D")
$email.htmlBody:="<html>"+\
"<body>Hello World!"+\
"<img src='cid:4D' >"+\
"</body>"+\
"</head>"+\
"</html>"
$transporter.send($email) // メールを送信します
End if
例題 2
4D Write Pro エリアを添付したメールを送信します:
C_BLOB($blob)
WP EXPORT VARIABLE(WPArea;$blob;wk docx)
C_OBJECT($email;$server;$transporter)
$server:=New object
$server.host:="smtp.mail.com"
$server.user:="user@mail.com"
$server.password:="p@ssw@rd"
$transporter:=SMTP New transporter($server)
$email:=New object
$email.from:="user@mail.com"
$email.to:="customer@mail.com"
$email.subject:="新規年次レポート"
$email.textBody:="添付のとおり、新しい年次レポートをご連絡します。
"
$email.attachments:=New collection(MAIL New attachment($blob;"Annual report.docx"))
$transporter.send($email)
4D.MailAttachment.new()
4D.MailAttachment.new( path : Text { ; name : Text {; cid : Text{ ; type : Text { ; disposition :Text } } } } ) : 4D.MailAttachment
4D.MailAttachment.new( blob : Blob { ; name : Text {; cid : Text{ ; type : Text { ; disposition :Text } } } } ) : 4D.MailAttachment
引数 | 型 | 説明 | |
---|---|---|---|
path | Text | -> | 添付ファイルのパス |
blob | BLOB | -> | 添付を格納した BLOB |
name | Text | -> | メールクライアントが添付を指定するのに使用する名前 + 拡張子 |
cid | Text | -> | 添付の ID (HTMLメッセージのみ)、あるいは cid が不要な場合は "" (空の文字列) |
type | Text | -> | content-type ヘッダーの値 |
disposition | Text | -> | content-disposition ヘッダーの値: "inline" あるいは "attachment" |
戻り値 | 4D.MailAttachment | <- | Attachment オブジェクト |
|
説明
4D.MailAttachment.new()
関数は、 4D.MailAttachment
型の新しいオブジェクトを作成して返します。 この関数の機能は、MAIL New attachment
コマンドと同一です。
.cid
.cid : Text
説明
.cid
プロパティは、 添付ファイルの ID を格納します。 このプロパティは HTMLメッセージでのみ使用されます。 このプロパティがない場合、ファイルは単なる添付 (リンク) として管理されます。
.disposition
.disposition : Text
説明
.disposition
プロパティは、 Content-Disposition
ヘッダーの値を格納します。 二つの値が利用可能です:
- "inline": 添付ファイルはメッセージコンテンツ内に、"cid"の場所にレンダリングされます。 レンダリングの結果はメールクライアントによって異なります。
- "attachment": 添付ファイルはメッセージ内でリンクとして提供されます。
.getContent()
.getContent() : Blob
引数 | 型 | 説明 | |
---|---|---|---|
戻り値 | BLOB | <- | 添付の中身 |
|
説明
.getContent()
関数は、 添付オブジェクトの中身を BLOB として返します。 MAIL Convert from MIME
コマンドによって取得した添付オブジェクトに対して、この関数を使用することができます。
.name
.name : Text
説明
.name
プロパティは、 添付ファイルの名前と拡張子を格納します。 MAIL New attachment
コマンドで別の名称を指定しなかった場合のデフォルトは、ファイルの名称です。
.path
.path : Text
説明
.path
プロパティは、 添付ファイルの POSIX パス (存在すれば) を格納します。
.platformPath
履歴
リリース | 内容 |
---|---|
19 | 追加 |
.platformPath : Text
説明
.platformPath
プロパティは、 カレントプラットフォームのシンタックスで表現された添付ファイルのパスを返します。
.type
.type : Text
説明
.type
プロパティは、 添付ファイルの content-type
を格納します。 MAIL New attachment
コマンドにて、このタイプが明示的に渡されていない場合、content-type
はファイルの拡張子に基づきます。