POP3Transporter
POP3Transporter
クラスを使って、POP3 メールサーバーからメッセージを取得することができます。
POP3 Transporter オブジェクト
POP3 Transporter objects are instantiated with the POP3 New transporter
command. これらは、次のプロパティや関数を持ちます:
.acceptUnsecureConnection : Boolean 暗号化されていない接続の確立が許可されてれば true |
.authenticationMode : Text メールサーバーのセッションを開くのに使用される認証モード |
.checkConnection() : Objecttransporter オブジェクトが保存する情報を使用して接続をチェックします |
.connectionTimeOut : Integer サーバー接続の確立までに待機する最長時間 (秒単位) |
.delete( msgNumber : Integer ) msgNumber で指定したメールメッセージに対して、POP3サーバーから削除するためのフラグを立てます |
.getBoxInfo() : Object 対象の POP3 transporter が指定するメールボックスに対応する boxInfo オブジェクトを返します |
.getMail( msgNumber : Integer { ; headerOnly : Boolean } ) : ObjectPOP3 transporter が指定するメールボックス内の、msgNumber に対応するメールを Email オブジェクトとして返します |
.getMailInfo( msgNumber : Integer ) : Object |
.getMailInfoList() : CollectionPOP3 transporter が指定するメールボックス内の全メッセージについて記述した mailInfo オブジェクトのコレクションを返します |
.getMIMEAsBlob( msgNumber : Integer ) : BlobPOP3_transporter が指定するメールボックス内の、msgNumber に対応するメッセージの MIMEコンテンツを格納した BLOB を返します |
.host : Text ホストサーバーの名前または IPアドレス |
.logFile : Text メール接続に対して定義された拡張ログファイル (あれば) へのフルパス |
.port : Integer メール通信に使用されるポート番号 |
.undeleteAll()POP3_transporter 内のメールに設定された削除フラグをすべて除去します |
.user : Text メールサーバーでの認証に使用されたユーザー名 |
4D.POP3Transporter.new()
4D.POP3Transporter.new( server : Object ) : 4D.POP3Transporter
引数 | 型 | 説明 | |
---|---|---|---|
server | オブジェクト | -> | メールサーバー情報 |
戻り値 | 4D.POP3Transporter | <- | POP3 transporter オブジェクト |
説明
4D.POP3Transporter.new()
関数は、新規の 4D.POP3Transporter
型オブジェクトを作成して返します。 It is identical to the POP3 New transporter
command (shortcut).
.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 (サーバーがサポートしていれば)
.authenticationMode
履歴
リリース | 内容 |
---|---|
17 R4 | 追加 |
.authenticationMode : Text
説明
.authenticationMode
プロパティは、メールサーバーのセッションを開くのに使用される認証モードを格納します。
デフォルトでは、サーバーによってサポートされている最も安全なモードが使用されます。
とりうる値:
値 | 定数 | 説明 |
---|---|---|
APOP | POP3 authentication APOP | APOP プロトコルを使用した認証 (POP3 のみ) |
CRAM-MD5 | POP3 authentication CRAM MD5 | CRAM-MD5 プロトコルを使用した認証 |
LOGIN | POP3 authentication login | LOGIN プロトコルを使用した認証 |
OAUTH2 | POP3 authentication OAUTH2 | OAuth2 プロトコルを使用した認証 |
PLAIN | POP3 authentication plain | PLAIN プロトコルを使用した認証 |
.checkConnection()
履歴
リリース | 内容 |
---|---|
17 R4 | 追加 |
.checkConnection() : Object
引数 | 型 | 説明 | |
---|---|---|---|
戻り値 | オブジェクト | <- | transporter オブジェクト接続のステータス |
説明
.checkConnection()
関数は、transporter
オブジェクトが保存する情報を使用して接続をチェックします。必要なら再接続をし、そのステータスを返します。 この関数を使用して、ユーザーから提供された値が有効かどうかを検証することができます。
返されるオブジェクト
この関数はメールサーバーにリクエストを送信し、メールステータスを表すオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります:
プロパティ | 型 | 説明 | |
---|---|---|---|
success | boolean | チェックが成功した場合には true、それ以外は false | |
status | number | (SMTPのみ) メールサーバ ーから返されたコード (メール処理に関係ない問題の場合には 0) | |
statusText | テキスト | メールサーバーから返されたステータスメッセージ、または 4Dエラースタック内に返された最後のエラー | |
errors | collection | 4Dエラースタック (メールサーバーレスポンスが受信できた場合には返されません) | |
[ ].errCode | number | 4Dエラーコード | |
[ ].message | テキスト | 4Dエラーの詳細 | |
[ ].componentSignature | テキスト | エラーを返した内部コンポーネントの署名 |
例題
var $pw : Text
var $options : Object
$options:=New object
$pw:=Request("パスワードを入力してください:")
if(OK=1)
$options.host:="pop3.gmail.com"
$options.user:="test@gmail.com"
$options.password:=$pw
$transporter:=POP3 New transporter($options)
$status:=$transporter.checkConnection()
If($status.success)
ALERT("POP3接続チェックに成功しました。")
Else
ALERT("エラー: "+$status.statusText)
End if
End if
.connectionTimeOut
履歴
リリース | 内容 |
---|---|
17 R5 | 追加 |
.connectionTimeOut : Integer
説明
.connectionTimeOut
プロパティは、サーバー接続の確立までに待機する最長時間 (秒単位)を格納します。 SMTP New transporter
や POP3 New transporter
、 IMAP New transporter
のコマンドで transporter
オブジェクトを作成する際に使用される server
オブジェクトにおいて、 このプロパティが指定されなかった場合のデフォルトは 30 です。
.delete()
履歴
リリース | 内容 |
---|---|
18 R2 | 追加 |
.delete( msgNumber : Integer )
引数 | 型 | 説明 | |
---|---|---|---|
msgNumber | 整数 | -> | 削除するメッセージの番号 |
説明
.delete()
関数は、msgNumber で指定したメールメッセージに対して、POP3サーバーから削除するためのフラグを立てます。
msgNumber には、削除するメールの番号を渡します。 この番号は、.getMailInfoList()
関数によって number プロパティに返されます。
この関数を実行しても、メールが実際に削除される訳ではありません。 フラグが立てられたメールは、(POP3 New transporter
で作成された) POP3_transporter
オブジェクトが消去された時に初めて POP3サーバーから削除されます。 立てたフラグは、.undeleteAll()
関数を使用して削除することもできます。
カレントセッションが予期せず終了して接続が閉じられた場合 (例: タイムアウト、ネットワーク問題等) にはエラーメッセージが生成され、削除フラグが立てられたメールは削除されずに POP3サーバー上に残ります。
例題
$mailInfoList:=$POP3_transporter.getMailInfoList()
For each($mailInfo;$mailInfoList)
// "セッション終了時に削除" とメールのフラグを立てます
$POP3_transporter.delete($mailInfo.number)
End for each
// セッションを強制的に終了し、削除フラグを立てたメールを削除します
CONFIRM("選択されているメッセージは削除されます。 ";"削除する";"元に戻す")
If(OK=1) // 削除を選んだ場合
$POP3_transporter:=Null
Else
$POP3_transporter.undeleteAll() // 削除フラグを消去します
End if
.getBoxInfo()
履歴
リリース | 内容 |
---|---|
18 R2 | 追加 |
.getBoxInfo() : Object
引数 | 型 | 説明 | |
---|---|---|---|
戻り値 | オブジェクト | <- | boxInfo オブジェクト |
説明
.getBoxInfo()
関数は、対象の POP3 transporter
が指定するメールボックスに対応する boxInfo
オブジェクトを返します。 この関数を使用するとメールボックスに関する情報を取得することができます。
返される boxInfo
オブジェクトには、以下のプロパティが格納されています:
プロパティ | 型 | 説明 |
---|---|---|
mailCount | Number | メールボックス内のメッセージの数 |
size | Number | メッセージのサイズ (バイト単位) |
例題
var $server; $boxinfo : Object
$server:=New object
$server.host:="pop.gmail.com" // 必須
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$transporter:=POP3 New transporter($server)
// メールボックス情報
$boxInfo:=$transporter.getBoxInfo()
ALERT("メールボックスには "+String($boxInfo.mailCount)+" 件のメッセージがあります。")
.getMail()
履歴
リリース | 内容 |
---|---|
20 | headerOnly パラメーターをサポート |
18 R2 | 追加 |
.getMail( msgNumber : Integer { ; headerOnly : Boolean } ) : Object
引数 | 型 | 説明 | |
---|---|---|---|
msgNumber | 整数 | -> | リスト中のメッセージの番号 |
headerOnly | ブール | -> | メールヘッダーのみをダウンロードする場合は true (デフォルトは false) |
戻り値 | オブジェクト | <- | Email オブジェクト |
説明
.getMail()
関数は、
POP3 transporter
が指定するメールボックス内の、msgNumber に対応するメールを Email
オブジェクトとして返します。 この関すを使用すると、メールのコンテンツをローカルで管理できるようになります。
msgNumber には、取得するメッセージの番号を渡します。 この番号は、.getMailInfoList()
関数によって number
プロパティに返されます。
任意で、headerOnly に true
を渡すと、返される Email
オブジェクトからボディ部を除外することができます。 その場合、ヘッダープロパティ (headers
, to
, from
...) のみが返されます。 サーバーにメールが大量にある場合に、このオプションでダウンロードを最適化することができます。
headerOnly オプションは、サーバー側でサポートされていない可能性があります。
この関数は、以下の場合には Null を返します:
- msgNumber で指定したメッセージが存在しない場合
- 指定したメッセージが
.delete()
によって削除フラグが立てられていた場合
返されるオブジェクト
.getMail()
は Email
オブジェクト を返します。
例題
メールボックスにある最初のメールの送信者を調べます:
var $server; $transporter : Object
var $mailInfo : Collection
var $sender : Variant
$server:=New object
$server.host:="pop.gmail.com" // 必須
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$transporter:=POP3 New transporter($server)
$mailInfo:=$transporter.getMailInfoList()
$sender:=$transporter.getMail($mailInfo[0].number).from
.getMailInfo()
履歴
リリース | 内容 |
---|---|
18 R2 | 追加 |
.getMailInfo( msgNumber : Integer ) : Object
引数 | 型 | 説明 | |
---|---|---|---|
msgNumber | 整数 | -> | リス ト中のメッセージの番号 |
戻り値 | オブジェクト | <- | MailInfo オブジェクト |
説明
.getMailInfoList()
関数は、POP3 transporter
が指定するメールボックス内の全メッセージについて記述した mailInfo
オブジェクトのコレクションを返します。 この関数を使用するとメールに関する情報を取得することができます。
msgNumber には、取得するメッセージの番号を渡します。 この番号は、.getMailInfoList()
関数によって number プロパティに返されます。
返される mailInfo
オブジェクトには、以下のプロパティが格納されています:
プロパティ | 型 | 説明 |
---|---|---|
size | Number | メッセージのサイズ (バイト単位) |
id | テキスト | メッセージの固有ID |
この関数は、以下の場合には Null を返します:
- msgNumber で指定したメッセージが存在しない場合
- 指定したメッセージが
.delete( )
によって削除フラグが立てられていた場合