4D v18

MAIL New attachment

ホーム

 
4D v18
MAIL New attachment

MAIL New attachment 


 

MAIL New attachment ( value {; name {; cid {; type {; disposition}}}} ) -> 戻り値 
引数   説明
value  テキスト, BLOB in 添付ファイルのパス(テキスト型)
あるいは添付を格納したBLOB(BLOB型)
name  テキスト in メールクライアントが添付を指定するのに使用する名前 + 拡張子
cid  テキスト in 添付のID(HTMLメッセージのみ)、あるいはcidが不要な場合は" "(空の文字列)
type  テキスト in コンテンツタイプヘッダーの値
disposition  テキスト in content-disposition ヘッダーの値: "inline" あるいは "attachment"
戻り値  Object in Attachmentオブジェクト

説明   

MAIL New attachment コマンドは、mail オブジェクトに追加することができる添付オブジェクトを作成します。(SMTP_transporter.send( )参照)

value 引数には、添付の中身を渡します。以下のものを渡すことができます:

  • テキスト型のvalue 引数: システムシンタックスで表現された添付ファイルのパスを渡します。完全なパス名、または単純なファイル名のみを渡すことができます(ファイル名のみの場合、4D はデータベースストラクチャーファイルと同じディレクトリ内を検索します)。
  • BLOB 型のvalue 引数: 添付そのものを渡します。

任意のname 引数には、添付を指定するためにメールクライアントが使用する名前と拡張子を渡すことができます。name 引数が省略された場合、ファイル名は以下のようになります:

  • value 引数がファイルパスの場合、そのファイル名と拡張子が使用されます。
  • value 引数がBLOB 型の場合、拡張子がないランダムな名前が自動的に生成されます。

任意のcid 引数を使用すると、添付ファイルの内部ID を渡すことができます。このID はコンテンツID ヘッダーの値で、HTML メッセージでのみ使用されます。引数は、添付ファイルを、メッセージ本文で定義された参照を割り当て、<img src="cid:ID"> のようにHTML タグを使用して参照します。これはつまり添付ファイルの中身(例: ピクチャー)はメールクライアント場ではメッセージ本文内に表示されるべきであることを意味しています。最終的な表示はメールクライアントによって若干異なる可能性があります。cid 引数を使用したくない場合、この引数には空の文字列を渡してください。

任意のtype 引数を使用すると、添付ファイルのコンテンツタイプを明示的に設定することができます。例えば、MIME タイプを定義する文字列("video/mpeg"など)を渡すことができます。このコンテンツタイプは拡張子とは関係なく添付ファイルに対して設定されます。MIME タイプについての詳細な情報については、Wikipedia 上のMIME に関するページを参照して下さい。
この引数が省略された場合あるいはこの引数に空の文字列が渡された場合、デフォルトで、添付ファイルのコンテンツタイプは拡張子に基づいて設定されます。主なMIME タイプについては、以下のルールが適用されます:

拡張子コンテンツタイプ
jpg, jpegimage/jpeg
pngimage/png
gifimage/gif
pdfapplication/pdf
docapplication/msword
xlsapplication/vnd.ms-excel
pptapplication/vnd.ms-powerpoint
zipapplication/zip
gzapplication/gzip
jsonapplication/json
jsapplication/javascript
psapplication/postscript
xmlapplication/xml
htm, htmltext/html
mp3audio/mpeg
otherapplication/octet-stream

任意のdisposition 引数には、添付ファイルのContent-Disposition ヘッダーを渡すことができます。"Mail" 定数テーマ内にある、以下の定数のいづれか1つを渡すことができます:

定数 コメント
mail disposition attachment attachment Content-disposition ヘッダーの値を"attachment" に設定します。これは添付ファイルはメッセージ内でリンクとして提供される必要があることを意味します。
mail disposition inline inline Content-disposition ヘッダーの値を"inline" に設定します。これは添付ファイルはメッセージ本文内の、"cid" の位置にレンダリングされる必要があることを意味します。レンダリングそのものはメールクライアントによります。

デフォルトでは、disposition 引数が省略された場合、Content-Disposition ヘッダーは以下のように設定されます:

  • cid 引数が使われていた場合、Content-Disposition ヘッダーは"inline" に設定されます。
  • cid 引数が渡されていない、あるいは空の文字列が渡されていた場合、Content-Disposition ヘッダーは"attachment" に設定されます。

MAIL New attachment は、transporter.send( ) メソッドによって扱われるmail オブジェクトのattachment コレクションに追加可能な新規attachment オブジェクトを返します。返されるオブジェクトには、以下のプロパティとメソッドが格納されています(プロパティは全て読み込みのみです):

プロパティ詳細
attachment.pathテキスト添付の完全なパス(存在していれば)
attachment.nameテキスト添付の名前と拡張子。デフォルトでは、ファイル名。
attachment.dispositionテキストContent-Disposition ヘッダーの値: "inline" または "attachment"
attachment.typeテキスト添付ファイルのコンテンツタイプ。このタイプがMAIL New attachment コマンドに明示的に渡されていない場合、コンテンツタイプはファイル拡張子に基づいて設定されます。
attachment.cidテキスト添付のID(HTML メッセージでのみ使用されます)。このプロパティがない場合、ファイルは単純な添付(リンク)として扱われます

 

メソッド詳細
attachment.getContent( )添付のコンテンツを返します

ユーザーが選択したファイルを添付として持ち、HTML 本文に画像が埋め込まれているeメールを送信したい場合を考えます:

 $doc:=Select document("";"*";"Please select a file to attach";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:="This is a test message with attachments"
 
  // ファイルをダウンロードするリンクを追加
    $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

4D Write Pro エリアを添付として持つeメールを送信したい場合を考えます:

 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:="New annual report"
 $email.textBody:="Please find enclosed our latest annual report."
 $email.attachments:=New collection(MAIL New attachment($blob;"Annual report.docx"))
 
 $transporter.send($email)



参照 

attachment.cid
attachment.disposition
attachment.getContent( )
attachment.name
attachment.path
attachment.type
SMTP_transporter.send( )

 
プロパティ 

プロダクト: 4D
テーマ: メール
番号: 1644

This command can be run in preemptive processes

 
履歴 

初出: 4D v17 R4

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v18)