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

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) はすべて、テキスト・オブジェクト・コレクション型の値を受け付けます。

Text

Object

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

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

Collection

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

メール本文の扱い

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

Email オブジェクト が MIME ドキュメントからビルドされた場合 (例: MAIL Convert from MIME コマンドで生成されたとき) は、bodyStructure および bodyValuesSMTP に使用されます。 この場合、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 プロパティは、メールのメインの受信者 アドレス を格納します。