メインコンテンツまでスキップ
バージョン: 21 R3

Email

4Dにおけるメールの作成・送信・受信は Email オブジェクトの操作よっておこなわれます。

transporter クラス関数を使ってメールを取得する際に、 Email オブジェクトが作成されます。

  • IMAP - .getMail() および .getMails() 関数は IMAPサーバーからメールを受信します。
  • POP3 - .getMail() 関数は POP3サーバーからメールを受信します。

また、新規かつ空の Email オブジェクトを作成してから、Email オブジェクトプロパティ を設定していくことも可能です。

Email オブジェクトは SMTP .send() 関数を使って送信します。

MAIL Convert from MIME および MAIL Convert to MIME コマンドは、MIME コンテンツから Email オブジェクトに、またはその逆の変換をおこなうのに使用できます。

info

このクラスは、バイナリーでストリーム可能 です。

Email オブジェクト​

Email オブジェクトは次のプロパティを提供します:

4D は Email オブジェクトのフォーマットを JMAP specification に準拠します。

.attachments : Collection
4D.MailAttachment オブジェクトのコレクション
.bcc : Text
.bcc : Object
.bcc : Collection

非表示 (BCC: Blind Carbon Copy) のメール受信者 アドレス
.bodyStructure : Object
(任意) メッセージ本文の完全なMIME ストラクチャーである EmailBodyPart オブジェクト
.bodyValues : Object
bodyStructure の <partID> 毎にオブジェクトを格納している EmailBodyValue オブジェクト
.cc : Text
.cc : Object
.cc : Collection

追加 (CC: Carbon Copy) のメール受信者 アドレス
.comments : Text
追加のコメントのヘッダー
.from : Text
.from : Object
.from : Collection

メールの送信元 アドレス
.headers : Collection
メッセージ内で現れる順番どおりの EmailHeader オブジェクトのコレクション
.htmlBody : Text
(任意、SMTPのみ) HTML形式のメールメッセージ (デフォルトの文字セットは UTF-8)
.id : Text
IMAP サーバーからの固有ID
.inReplyTo : Text
カレントメッセージが返信している、元のメッセージのメッセージID
.keywords : Object
各プロパティ名がキーワードであり、各値が true であるキーワードセットのオブジェクト
.messageId : Text
メッセージ識別ヘッダー ("message-id")
.receivedAt : Text
IMAPサーバーにメールが到着した時間の、ISO 8601 UTC フォーマットでのタイムスタンプ (例: 2020-09-13T16:11:53Z)
.references : Collection
返信チェーン内メッセージの、全メッセージID のコレクション
.replyTo : Text
.replyTo : Object
.replyTo : Collection

返信用 アドレス
.sendAt : Text
メールのタイムスタンプ (ISO 8601 UTCフォーマット)
.sender : Text
.sender : Object
.sender : Collection

メールのソース アドレス
.size : Integer
IMAPサーバーから返された Email オブジェクトのサイズ (バイト単位)
.subject : Text
メールの件名
.textBody : Text
(任意、SMTPのみ) 標準テキスト形式のメールメッセージ (デフォルトの文字セットは UTF-8)
.to : Text
.to : Object
.to : Collection

メールのメインの受信者 アドレス

メールアドレス​

メールアドレスを格納するプロパティ (from, cc, bcc, to, sender, replyTo) はすべて、テキスト・オブジェクト・コレクション型の値を受け付けます。

テキスト​

オブジェクト​

2つのプロパティを持つオブジェクト:

プロパティ型説明
nameText表示名 (null も可能)
emailTextメールアドレス

コレクション​

アドレスオブジェクトのコレクション

メール本文の扱い​

textBody および htmlBody はどちらもSMTP.send() でのみ使用され、これによって単純なメールの送信が可能になります。プロパティが両方ともある場合、MIME content-type の multipart/alternative が使用されます。メールクライアントは multipart/alternative パートを認識し、必要に応じてテキスト部または html 部を表示します。

Email オブジェクト が MIME ドキュメントからビルドされた場合 (例: MAIL Convert from MIME コマンドで生成されたとき) は、bodyStructure および bodyValues が SMTP に使用されます。この場合、bodyStructure および bodyValues プロパティは両方一緒に渡される必要があり、textBody および htmlBody の使用は推奨されません。

bodyStructure および bodyValues オブジェクトの例​

"bodyStructure": {
"type": "multipart/mixed",
"subParts": [
{
"partId": "p0001",
"type": "text/plain"
},
{
"partId": "p0002",
"type": "text/html"
}
]
},
"bodyValues": {
"p0001": {
"value": "I have the most brilliant plan. Let me tell you all about it."
},
"p0002": {
"value": "<!DOCTYPE html><html><head><title></title><style type=\"text/css\">div{font-size:16px}</style></head><body><div>I have the most brilliant plan. Let me tell you all about it.</div></body></html>"
}
}

.attachments​

.attachments : Collection

説明​

.attachments プロパティは、4D.MailAttachment オブジェクトのコレクションを格納します。

MailAttachment オブジェクトは MAIL New attachment コマンドによって定義されます。 MailAttachment オブジェクトは特有の プロパティや関数 を持ちます。

.bcc​

.bcc : Text
.bcc : Object
.bcc : Collection

説明​

.bcc プロパティは、非表示 (BCC: Blind Carbon Copy) のメール受信者 アドレス を格納します。

.bodyStructure​

.bodyStructure : Object

説明​

.bodyStructure プロパティは、(任意) メッセージ本文の完全なMIME ストラクチャーである EmailBodyPart オブジェクトを格納します。メール本文の扱い を参照ください。

.bodyStructure オブジェクトには、次のプロパティが格納されています:

プロパティ型値
partIDTextメールのパートを固有に識別する ID
typeText(必須) パートの Content-Type ヘッダーフィールドの値
charsetTextContent-Type ヘッダーフィールドの Charset の値
encodingTextisEncodingProblem=true の場合、Content-Transfer-Encoding の値が追加されます (デフォルトでは未定義)
dispositionTextパートの Content-Disposition ヘッダーフィールドの値
languageText の Collectionパートの Content-Language ヘッダーフィールドの、RFC3282 で定義されている言語タグの一覧 (あれば)
locationTextパートの Content-Location ヘッダーフィールドの、RFC2557 で定義されている URI (あれば)
subPartsObject の Collectionそれぞれの子の本文パート (EmailBodyPart オブジェクトのコレクション)
headersObject の Collectionパート内の全ヘッダーフィールドの、メッセージ内で出現する順の一覧 (EmailHeader オブジェクトのコレクション。headers プロパティ参照)

.bodyValues​

.bodyValues : Object

説明​

.bodyValues プロパティは、 bodyStructure の <partID> 毎にオブジェクトを格納している EmailBodyValue オブジェクトを格納します (任意)。メール本文の扱い を参照ください。

.bodyValues オブジェクトには、次のプロパティが格納されています:

プロパティ型値
partID.valuetext本文パートの値
partID.isEncodingProblemboolean文字セットをデコーディング中に、不正なフォーマットのセクション、未知の文字セット、あるいは未知の content-transfer-encoding が見つかった場合には true。デフォルトは false。

.cc​

.cc : Text
.cc : Object
.cc : Collection

説明​

.cc プロパティは、追加 (CC: Carbon Copy) のメール受信者 アドレス を格納します。

.comments​

.comments : Text

説明​

.comments プロパティは、追加のコメントのヘッダーを格納します。

コメントはメッセージのヘッダーセクション内にのみ表示されます (つまり本文部分には触れないということです)。

特定のフォーマット条件についての詳細は、RFC#5322 を参照ください。

.from​

.from : Text
.from : Object
.from : Collection

説明​

.from プロパティは、メールの送信元 アドレス を格納します。

送信されるメールには、それぞれ sender および from アドレスの両方がついています:

  • sender ドメインは、受信側のメールサーバーがセッションを開いたときに受け取るドメインです。
  • from アドレスは、受信者から見えるアドレスです。

配信性向上のため、sender および from アドレスには同じアドレスを使用することが推奨されます。

.headers​

.headers : Collection

説明​

.headers プロパティは、メッセージ内で現れる順番どおりの EmailHeader オブジェクトのコレクションを格納します。これによってユーザーは拡張された (登録された) ヘッダーや、ユーザー定義された (登録されていない、"X" で始まる) ヘッダーを追加することができます。

メールレベルですでにプロパティとして設定されている "from" または "cc" などのヘッダーを EmailHeader オブジェクトプロパティが定義している場合、EmailHeader プロパティは無視されます。

ヘッダーコレクションの各オブジェクトには、次のプロパティが格納されることがあります:

プロパティ型値
[].nametext(必須) RFC#5322 で定義されているヘッダーフィールド名。 null または未定義の場合には、ヘッダーフィールドは MIME ヘッダーに追加されません。
[].valuetextRFC#5322 で定義されているヘッダーフィールド値。

.htmlBody​

.htmlBody : Text

説明​

.htmlBody プロパティは、(任意、SMTPのみ) HTML形式のメールメッセージ (デフォルトの文字セットは UTF-8) を格納します。メール本文の扱い を参照ください。

.id​

.id : Text

説明​

IMAP transporter のみ。

.id プロパティは、IMAP サーバーからの固有ID を格納します。

.inReplyTo​

.inReplyTo : Text

説明​

.inReplyTo プロパティは、カレントメッセージが返信している、元のメッセージのメッセージID を格納します。

特定のフォーマット条件についての詳細は、RFC#5322 を参照ください。

.keywords​

.keywords : Object

説明​

.keywords プロパティは、各プロパティ名がキーワードであり、各値が true であるキーワードセットのオブジェクトを格納します。

このプロパティは "keywords" ヘッダーです (RFC#4021 参照)。

プロパティ型値
.<keyword>boolean設定するキーワード (値は true でなければなりません)。

予約されたキーワード:

  • $draft - メッセージが下書きであることを表します
  • $seen - メッセージが読まれたことを表します
  • $flagged - メッセージが注視されるべきであることを表します (例: 至急のメール)
  • $answered - メッセージに返信がされたことを表します
  • $deleted - メッセージが消去されることを表します

例題​

$mail.keywords["$flagged"]:=True
$mail.keywords["4d"]:=True

.messageId​

.messageId : Text

説明​

.messageId プロパティは、メッセージ識別ヘッダー ("message-id") を格納します。

通常は、"lettersOrNumbers@domainname" の形式、たとえば "abcdef.123456@4d.com" などです。この固有ID は特にフォーラムや公開メーリングリストで使用されています。一般的に、メールサーバーは送信するメッセージにこのヘッダーを自動的に追加します。

.receivedAt​

.receivedAt : Text

説明​

IMAP transporter のみ。

.receivedAt プロパティは、IMAPサーバーにメールが到着した時間の、ISO 8601 UTC フォーマットでのタイムスタンプ (例: 2020-09-13T16:11:53Z) を格納します。

.references​

.references : Collection

説明​

.references プロパティは、返信チェーン内メッセージの、全メッセージID のコレクションを格納します。

特定のフォーマット条件についての詳細は、RFC#5322 を参照ください。

.replyTo​

.replyTo : Text
.replyTo : Object
.replyTo : Collection

説明​

.replyTo プロパティは、返信用 アドレス を格納します。

.sendAt​

.sendAt : Text

説明​

.sendAt プロパティは、メールのタイムスタンプ (ISO 8601 UTCフォーマット) を格納します。

.sender​

.sender : Text
.sender : Object
.sender : Collection

説明​

.sender プロパティは、メールのソース アドレス を格納します。

送信されるメールには、それぞれ sender および from アドレスの両方がついています:

  • sender ドメインは、受信側のメールサーバーがセッションを開いたときに受け取るドメインです。
  • from アドレスは、受信者から見えるアドレスです。

配信性向上のため、sender および from アドレスには同じアドレスを使用することが推奨されます。

.size​

.size : Integer

説明​

IMAP transporter のみ。

.size プロパティは、IMAPサーバーから返された Email オブジェクトのサイズ (バイト単位) を格納します。

.subject​

.subject : Text

説明​

.subject プロパティは、メールの件名を格納します。

.textBody​

.textBody : Text

説明​

.textBody プロパティは、(任意、SMTPのみ) 標準テキスト形式のメールメッセージ (デフォルトの文字セットは UTF-8) を格納します。メール本文の扱い を参照ください。

.to​

.to : Text
.to : Object
.to : Collection

説明​

.to プロパティは、メールのメインの受信者 アドレス を格納します。