| 4D v18MAIL New attachment | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 MAIL New attachment 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MAIL New attachment ( value {; name {; cid {; type {; disposition}}}} ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| value | テキスト, BLOB |   | 添付ファイルのパス(テキスト型) あるいは添付を格納したBLOB(BLOB型) | |||||
| name | テキスト |   | メールクライアントが添付を指定するのに使用する名前 + 拡張子 | |||||
| cid | テキスト |   | 添付のID(HTMLメッセージのみ)、あるいはcidが不要な場合は" "(空の文字列) | |||||
| type | テキスト |   | コンテンツタイプヘッダーの値 | |||||
| disposition | テキスト |   | content-disposition ヘッダーの値: "inline" あるいは "attachment" | |||||
| 戻り値 | Object |   | Attachmentオブジェクト | |||||
MAIL New attachment コマンドは、mail オブジェクトに追加することができる添付オブジェクトを作成します。(SMTP_transporter.send( )参照)
value 引数には、添付の中身を渡します。以下のものを渡すことができます:
任意のname 引数には、添付を指定するためにメールクライアントが使用する名前と拡張子を渡すことができます。name 引数が省略された場合、ファイル名は以下のようになります:
任意のcid 引数を使用すると、添付ファイルの内部ID を渡すことができます。このID はコンテンツID ヘッダーの値で、HTML メッセージでのみ使用されます。引数は、添付ファイルを、メッセージ本文で定義された参照を割り当て、<img src="cid:ID"> のようにHTML タグを使用して参照します。これはつまり添付ファイルの中身(例: ピクチャー)はメールクライアント場ではメッセージ本文内に表示されるべきであることを意味しています。最終的な表示はメールクライアントによって若干異なる可能性があります。cid 引数を使用したくない場合、この引数には空の文字列を渡してください。
任意のtype 引数を使用すると、添付ファイルのコンテンツタイプを明示的に設定することができます。例えば、MIME タイプを定義する文字列("video/mpeg"など)を渡すことができます。このコンテンツタイプは拡張子とは関係なく添付ファイルに対して設定されます。MIME タイプについての詳細な情報については、Wikipedia 上のMIME に関するページを参照して下さい。
この引数が省略された場合あるいはこの引数に空の文字列が渡された場合、デフォルトで、添付ファイルのコンテンツタイプは拡張子に基づいて設定されます。主なMIME タイプについては、以下のルールが適用されます:
| 拡張子 | コンテンツタイプ | 
| 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 | 
| other | application/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 ヘッダーは以下のように設定されます:
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 if4D 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
        
        
        
	
	初出: 4D v17 R4
	ランゲージリファレンス ( 4D v18)
	
	
	
 コメントを追加
コメントを追加