IMAPTransporter
IMAPTransporter
クラスを使って、IMAP メールサーバーからメッセージを取得することができます。
IMAP Transporter オブジェクト
IMAP Transporter オブジェクトは IMP New transporter コマンドによってインスタンス化されます。 これらは、次のプロパティや関数を持ちます:
IMAP New transporter
履歴
リリース | 内容 |
---|---|
18 R4 | 追加 |
IMAP New transporter( server : Object ) : 4D.IMAPTransporter
引数 | 型 | 説明 | |
---|---|---|---|
server | Object | -> | メールサーバー情報 |
戻り値 | 4D.IMAPTransporter | <- | IMAP transporter オブジェクト |
説明
IMAP New transporter
コマンドは、server 引数の指定に応じて新規の IMAP接続を設定します。戻り値は、新しい IMAP transporter
オブジェクトです。 返される transporter オブジェクトは通常、メールの受信に使用されます。
server 引数として、以下のプロパティを持つオブジェクトを渡します:
server | デフォルト値 (省略時) |
---|---|
.acceptUnsecureConnection : Boolean 暗号化されていない接続の確立が許可されてれば true | false |
.accessTokenOAuth2: Text .accessTokenOAuth2: Object OAuth2 認証の資格情報を表すテキスト文字列またはトークンオブジェクト。 authenticationMode が OAUTH2 の場合のみ使用されます。 accessTokenOAuth2 が使用されているが authenticationMode が省略されていた場合、OAuth2 プロトコルが使用されます (サーバーで許可されていれば)。 IMAP transporter オブジェクトには返されません。 | なし |
.authenticationMode : Text メールサーバーのセッションを開くのに使用される認証モード | サーバーがサポートするもっともセキュアな認証モードが使用されます |
.checkConnectionDelay : Integer サーバー接続をチェックするまでの最長時間 (秒単位) | 300 |
.connectionTimeOut : Integer サーバー接続の確立までに待機する最長時間 (秒単位) | 30 |
.host : Text ホストサーバーの名前または IPアドレス | mandatory |
.logFile : Text メール接続に対して定義された拡張ログファイル (あれば) へのフルパス | なし |
.password : Text サーバーとの認証のためのユーザーパスワード。 IMAP transporter オブジェクトには返されません。 | なし |
.port : Integer メール通信に使用されるポート番号 | 993 |
.user : Text メールサーバーでの認証に使用されたユーザー名 | なし |
警告: 定義されたタイムアウトが、サーバータイムアウトより短いようにしてください。そうでない場合、クライアントタイムアウトは無意味になります。
戻り値
この関数は、IMAP transporter オブジェクト を返します。 返されるプロパティはすべて 読み取り専用 です。
IMAP接続は、transporter オブジェクトが消去された時点で自動的に閉じられます。
例題
$server:=New object
$server.host:="imap.gmail.com" // 必須
$server.port:=993
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$server.logFile:="LogTest.txt" // Logsフォルダーに保存するログファイル
var $transporter : 4D.IMAPTransporter
$transporter:=IMAP New transporter($server)
$status:=$transporter.checkConnection()
If(Not($status.success))
ALERT("エラーが発生しました: "+$status.statusText)
End if
4D.IMAPTransporter.new()
4D.IMAPTransporter.new( server : Object ) : 4D.IMAPTransporter
引数 | 型 | 説明 | |
---|---|---|---|
server | Object | -> | メールサーバー情報 |
戻り値 | 4D.IMAPTransporter | <- | IMAP transporter オブジェクト |
説明
4D.IMAPTransporter.new()
関数は、新規の 4D.IMAPTransporter
型オブジェクトを作成して返します。 この関数の機能は、IMAP New transporter
コマンドと同一です。
.acceptUnsecureConnection
履歴
リリース | 内容 |
---|---|
17 R4 | 追加 |
.acceptUnsecureConnection : Boolean
説明
.acceptUnsecureConnection
プロパティは、暗号化された接続が不可能な場合に、 暗号化されていない接続の確立が許可されてれば true を格納します。
暗号化されていない接続が許可されていない場合には false が格納されており、その場合に暗号化された接続が不可能な場合にはエラーが返されます。
使用可能なセキュアなポートは次のとおりです:
-
SMTP
- 465: SMTPS
- 587 または 25: STARTTLS アップグレードがされた SMTP (サーバーがサポートしていれば)
-
IMAP
- 143: IMAP 非暗号化ポート
- 993: STARTTLS アップグレードがされた IMAP (サーバーがサポートしていれば)
-
POP3
- 110: POP3 非暗号化ポート
- 995: STARTTLS アップグレードがされた POP3 (サーバーがサポートしていれば)
.addFlags()
履歴
リリース | 内容 |
---|---|
20 | カスタムキーワードをサポート |
18 R6 | 追加 |
.addFlags( msgIDs : Collection ; keywords : Object ) : Object
.addFlags( msgIDs : Text ; keywords : Object ) : Object
.addFlags( msgIDs : Longint ; keywords : Object ) : Object
引数 | 型 | 説明 | |
---|---|---|---|
msgIDs | Collection | -> | 文字列のコレクション: メッセージの固有ID (テキスト型) テキスト: メッセージの固有ID 倍長整数 (IMAP all): 選択されたメールボックス内の全メッセージ |
keywords | Object | -> | 追加するキーワードフラグ |
戻り値 | Object | <- | addFlags処理のステータス |
説明
.addFlags()
関数は、
msgIDs
のメッセージに対して、keywords
で指定したフラグを追加します。
msgIDs
には、以下のいずれかを渡すことができます:
- 指定するメッセージの固有ID を格納した コレクション
- 単一のメッセージの固有ID (テキスト)
- 以下の定数 (longint) を使用することで、選択されているメールボックスの全メッセージを指定することができます:
定数 | 値 | 説明 |
---|---|---|
IMAP all | 1 | 選択されたメールボックスの全メッセージを選択します |
keywords
を使って、msgIDs
引数で指定したメッセージに対して追加す るフラグを定義します。 以下の標準フラグおよびカスタムフラグを使用することができます (カスタムフラグのサポートはサーバーの実装に依存します)。
プロパティ | 型 | 説明 |
---|---|---|
$draft | Boolean | メッセージに "draft" フラグを追加するには true |
$seen | Boolean | メッセージに "seen" フラグを追加するには true |
$flagged | Boolean | メッセージに "flagged" フラグを追加するには true |
$answered | Boolean | メッセージに "answered" フラグを追加するには true |
$deleted | Boolean | メッセージに "deleted" フラグを追加するには true |
<custom flag> | Boolean | メッセージにカスタムフラグを追加するには true |
カスタムフラグ名は、次の規則に従う必要があります: キーワードは、制御文字とスペースを含まない、文字の大小を区別する文字列であり、次の文字は使用できません: ( ) { ] % * " \
- キーワードが考慮されるためには、その値が true でなければなりません。
- キーワードフラグの解釈は、メールクライアントごとに異なる可能性があります。
返されるオブジェクト
この関数は、IMAP ステータスを表すオブジェクトを返します:
プロパティ | 型 | 説明 | |
---|---|---|---|
success | Boolean | 処理が正常に終わった場合には true、それ以外は false | |
statusText | Text | IMAPサーバーから返されたステータスメッセージ、または 4Dエラースタック内に返された最後のエラー | |
errors | Collection | 4Dエラースタック (IMAPサーバーレスポンスが受信できた場合には返されません) | |
[].errcode | Number | 4Dエラーコード | |
[].message | Text | 4Dエラーの詳細 | |
[].componentSignature | Text | エラーを返した内部コンポーネントの署名 |
例題
var $options;$transporter;$boxInfo;$status : Object
$options:=New object
$options.host:="imap.gmail.com"
$options.port:=993
$options.user:="4d@gmail.com"
$options.password:="xxxxx"
// transporter を作成します
$transporter:=IMAP New transporter($options)
// メールボックスを選択します
$boxInfo:=$transporter.selectBox("INBOX")
// INBOXの全メッセージを既読に設定します
$flags:=New object
$flags["$seen"]:=True
$status:=$transporter.addFlags(IMAP all;$flags)
.append()
履歴
リリース | 内容 |
---|---|
18 R6 | 追加 |
.append( mailObj : Object ; destinationBox : Text ; options : Object ) : Object
引数 | 型 | 説明 | |
---|---|---|---|
mailObj | Object | -> | Email オブジェクト |
destinationBox | Text | -> | Emailオブジェクトを受信するメールボックス |
options | Object | -> | 文字セット情報を格納したオブジェクト |
戻り値 | Object | <- | append処理のステータス |
説明
.append()
関数は、destinationBox
に指定したメールボックスに、mailObj
のメールを追加します。
mailObj
には、Email オブジェクトを渡します。 メールプロパティに関する包括的な詳細については、Email オブジェクト を参照ください。 .append()
関数は Email オブジェクトの keywords
属性内のキーワードタグをサポートします。
任意の destinationBox
には、mailObj
が追加されるメールボックスの名前を指定することができます。 省略した場合は、カレントメールボックスが使用されます。
任意の options
には、メールの特定部分の文字セットやエンコーディングを定義するオブジェクトを渡すことができます。 次のプロパティを含みます:
プロパティ | 型 | 説明 |
---|---|---|
headerCharset | Text | メールの以下の部分で使用される文字セットとエンコーディング: 件名、添付ファイル名、メール名の属性。 取り得る値: 以下の可能な文字セットテーブルを参照ください。 |
bodyCharset | Text | メールの HTML およびテキスト本文コンテンツで使用される文字セットとエンコーディング。 取り得る値: 以下の可能な文字セットテーブルを参照ください。 |
使用可能な文字セット:
定数 | 値 | 説明 |
---|---|---|
mail mode ISO2022JP | US-ASCII_ISO-2022-JP_UTF8_QP |
|
mail mode ISO88591 | ISO-8859-1 |
|
mail mode UTF8 | US-ASCII_UTF8_QP | headerCharset & bodyCharset: 可能なら US-ASCII、それが不可なら UTF-8 & Quoted-printable (デフォルト値) |
mail mode UTF8 in base64 | US-ASCII_UTF8_B64 | headerCharset & bodyCharset: 可能な場合は US-ASCII、それ以外は UTF-8 & base64 |
返されるオブジェクト
この関数は、IMAP ステータスを表すオブジェクトを返します:
プロパティ | 型 | 説明 | |
---|---|---|---|
success | Boolean | 処理が正常に終わった場合には true、それ以外は false | |
statusText | Text | IMAPサーバーから返されたステータスメッセージ、または 4Dエラースタック内に返された最後のエラー | |
errors | Collection | 4Dエラースタック (IMAPサーバーレスポンスが受信できた場合には返されません) | |
[].errcode | Number | 4Dエラーコード | |
[].message | Text | 4Dエラーの詳細 | |
[].componentSignature | Text | エラーを返した内部コンポーネントの署名 |
例題
Drafts メールボックスにメールを保存します:
var $settings; $status; $msg; $imap: Object
$settings:=New object("host"; "domain.com"; "user"; "xxxx"; "password"; "xxxx"; "port"; 993)
$imap:=IMAP New transporter($settings)
$msg:=New object
$msg.from:="xxxx@domain.com"
$msg.subject:="Lorem Ipsum"
$msg.textBody:="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
$msg.keywords:=New object
$msg.keywords["$seen"]:=True // メッセージに既読フラグをつけます
$msg.keywords["$draft"]:=True // メッセージに下書きフラグを つけます
$status:=$imap.append($msg; "Drafts")
.authenticationMode
履歴
リリース | 内容 |
---|---|
17 R4 | 追加 |
.authenticationMode : Text
説明
.authenticationMode
プロパティは、 メールサーバーのセッションを開くのに使用される認証モードを格納します。
デフォルトでは、サーバーによってサポートされている最 も安全なモードが使用されます。
とりうる値:
値 | 定数 | 説明 |
---|---|---|
CRAM-MD5 | IMAP authentication CRAM MD5 | CRAM-MD5 プロトコルを使用した認証 |
LOGIN | IMAP authentication login | LOGIN プロトコルを使用した認証 |
OAUTH2 | IMAP authentication OAUTH2 | OAuth2 プロトコルを使用した認証 |
PLAIN | IMAP authentication plain | PLAIN プロトコルを使用した認証 |
.checkConnection()
履歴
リリース | 内容 |
---|---|
17 R4 | 追加 |
.checkConnection() : Object
引数 | 型 | 説明 | |
---|---|---|---|
戻り値 | Object | <- | transporter オブジェクト接続のステータス |
説明
.checkConnection()
関数は、transporter
オブジェクトが保存する情報を使用して接続をチェックします。必要なら再接続をし、そのステータスを返します。 この関数を使用して、ユーザーから提供された値が有効かどうかを検証することができます。
返されるオブジェクト
この関数はメールサーバーにリクエストを送信し、メールステータスを表すオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります:
プロパティ | 型 | 説明 | |
---|---|---|---|
success | boolean | チェックが成功した場合には true、それ以外は false | |
status | number | (SMTPのみ) メールサーバーから返されたコード (メール処理に関係ない問題の場合には 0) | |
statusText | text | メールサーバーから返されたステータスメッセージ、または 4Dエラースタック内に返された最後のエラー | |
errors | collection | 4Dエラースタック (メールサーバーレスポンスが受信できた場合には返されません) | |
[ ].errCode | number | 4Dエラーコード | |
[ ].message | text | 4Dエラーの詳細 | |
[ ].componentSignature | text | エラーを返した内部コンポーネントの署名 |