4Dにおけるメールの作成・送信・受信は Email
オブジェクトの操作よっておこなわれます。
transporter クラス関数を使ってメールを取得する際に、
Email
オブジェクトが作成されます。
- IMAP -
.getMail()
および.getMails()
関数は IMAPサーバーからメールを受信します。 - POP3 -
.getMail()
関数は POP3サーバーからメールを受信します。
また、新規かつ空の
Email
オブジェクトは SMTP .send()
関数を使って送信します。
MAIL Convert from MIME
および MAIL Convert to MIME
コマンドは、MIME コンテンツから Email
オブジェクトに、またはその逆の変換をおこなうのに使用できます。
Email オブジェクト
Email オブジェクトは次のプロパティを提供します:
4D は Email オブジェクトのフォーマットは JMAP specification に準拠します。
.attachments : Collection4D.MailAttachment オブジェクトのコレクション |
.bcc : Text .bcc : Object .bcc : Collection 非表示 (BCC: Blind Carbon Copy) のメール受信者 アドレス |
.bodyStructure : Object (任意) メッセージ本文の完全なMIME ストラクチャーである EmailBodyPart オブジェクト |
.bodyValues : ObjectbodyStructure の <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
- 単一のメールアドレス: "somebody@domain.com"
- 単一の表示名+メールアドレス: "Somebody somebody@domain.com"
- 複数のメールアドレス: "Somebody somebody@domain.com,me@home.org"
Object
2つのプロパティを持つオブジェクト:
プロパティ | 型 | 説明 |
---|---|---|
name | Text | 表示名 (null も可能) |
Text | メールアドレス |
Collection
アドレスオブジェクトのコレクション
メール本文の扱い
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
オブジェクトには、次のプロパティが格納されています:
プロパティ | 型 | 値 |
---|---|---|
partID | Text | メールのパートを固有に識別する ID |
type | Text | (必須) パートの Content-Type ヘッダーフィールドの値 |
charset | Text | Content-Type ヘッダーフィールドの Charset の値 |
encoding | Text | isEncodingProblem=true の場合、Content-Transfer-Encoding の値が追加されます (デフォルトでは未定義) |
disposition | Text | パートの Content-Disposition ヘッダーフィールドの値 |
language | Text の Collection | パートの Content-Language ヘッダーフィールドの、RFC3282 で定義されている言語タグの一覧 (あれば) |
location | Text | パートの Content-Location ヘッダーフィールドの、RFC2557 で定義されている URI (あれば) |
subParts | Object の Collection | それぞれの子の本文パート (EmailBodyPart オブジェクトのコレクション) |
headers | Object の Collection | パート内の全ヘッダーフィールドの、メッセージ内で出現する順の一覧 (EmailHeader オブジェクトのコレクション。headers プロパティ参照) |
.bodyValues
.bodyValues : Object
説明
.bodyValues
プロパティは、
bodyStructure
の <partID> 毎にオブジェクトを格納している EmailBodyValue オブジェクトを格納します (任意)。 メール本文の扱い を参照ください。
.bodyValues
オブジェクトには、次のプロパティが格納されています:
プロパティ | 型 | 値 |
---|---|---|
partID.value | text | 本文パートの値 |
partID.isEncodingProblem | boolean | 文字セットをデコーディング中に、不正なフォーマットのセクション、未知の文字セット、あるいは未知の 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
プロパティは無視されます。
ヘッダーコレクションの各オブジェクトには、次のプロパティが格納されることがあります:
プロパティ | 型 | 値 |
---|---|---|
[].name | text | (必須) RFC#5322 で定義されているヘッダーフィールド名。 null または未定義の場合には、ヘッダーフィールドは MIME ヘッダーに追加されません。 |
[].value | text | RFC#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
プロパティは、メールのメインの受信者 アドレス を格納します。