IMAPプロトコルでメールを受信する

Deeplからの自動翻訳

4D v18では、メールを送信するための新しい方法を導入しました。そして、4D v18 R2では、POP3を使った新しいメールの取得方法を追加しました。今、4D v18 R4では、IMAPプロトコルを扱う新しい方法の最初のステップを踏み出しました。SMTPとPOP3に対して行ったように、IMAPプロトコルを処理する新しいIMAP New transporter コマンドがあります。

IMAP(Internet Message Access Protocol)は、メールクライアントがメールサーバーから電子メールメッセージを取得するために使用されるインターネット標準のプロトコルです。このプロトコルにより、複数のメールボックスの管理、電子メールのダウンロード、サーバー上での検索の実行、メッセージの状態の管理、その他多くのことが可能になります!

そして、この最初のIMAP機能で、利用可能なメールボックスのリストを持ち、メールボックスを選択し、選択したメールボックスからメールを受信するためのメソッドをトランスポーターに追加することができます:。では、その方法を見てみましょう。

以下のHDIは、IMAP経由でメールを受信する方法を示しています。

HDI IMAP経由でメールを受信する

IMAPトランスポーターを作成する

SMTP や POP3 と同様に、IMAP プロトコルを使用する場合、まずトランスポーターを作成する必要があります (コマンドを使用します)。 IMAP New transporterコマンドで)作成する必要があります。

$server
:=New object
$server .host:="yourIMAPhost.com"
$server .port:=995
$server .user:="4D.IMAP@mail.com"$serverpassword :="XXXXXX"
// Create a transporter from your server information
$IMAP_Transporter:=IMAP New transporter($server)

メールボックスの選択

IMAP は複数のメールボックスをサポートしているので、まず最初に、必要なメールボックスを指定します。

メールサーバ上の利用可能なメールボックスの一覧は getBoxList メソッドで取得できます。

$boxList:=$IMAP_Transporter.getBoxList()
Alert ("あなたの最初のメールボックス名は "+$boxList[0].name)

必要なメールボックスの名前がわかったら、selectBox メソッドを使用するだけです。

$boxInfo:=$transporter.selectBox($boxList[$boxId].name)

このコマンドは、次のような便利な情報を返します。

  • メールボックス内のメール数
  • 最近のメッセージの数

メールのダウンロード

ダウンロードしたいメールを特定するには、2つの方法があります。

  • 一つ目は、POP3の場合と同じように、メールボックスの中のメールの位置を使う方法です。例えば、最後に受信したメールをダウンロードしたい場合。

$mail:=$transporter.getMail($boxInfo.mailCount)

  • もう一つは、IMAPサーバーから返されるメールオブジェクトのid 属性を利用する方法です。メールを削除すると、メールボックス内の位置が変更されることがあるので、特定のメールを取得したい場合にこの方法が最適です。

$mail:=$transporter.getMail($emailId)

先に述べたように、これはIMAPの最初の機能です。これからもっと増える予定です。ご期待ください。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。