メインコンテンツまでスキップ
バージョン: 開発中

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 オブジェクトに、またはその逆の変換をおこなうのに使用できます。

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 プロパティは、メールのメインの受信者 アドレス を格納します。