The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 記事閲覧
アイコン IMAPサーバでのメール削除 その後
日時: 2018/05/25 16:46
名前: ukimer

先に「IMAPサーバでのメール削除」のスレッドでお世話になった者です。
その節は的確なアドバイスをありがとうございました。

前スレッドにて、助言頂いた結果、
gmailのIMAPサーバ機能について
@IMAPサーバ接続
Aメール読み込み
B添付をファイルとして保存
C読み込み済みのメールをIMAPサーバから削除
と、全ての実装したい機能を実現出来ました。

続いて、作成したプログラムを当方のテスト環境ではなく、
本番環境へ持ち込み本番のIMAPサーバから上記の実装機能を
実行したところ、C以外は正常に動作する事が確認出来ました。

Cの機能は前スレッド「IMAPサーバでのメール削除」の
最期に当方が投稿した
Dim mail_box
mail_box = client.GetMailBox(0).MailDatas(0)
Dim Mail As TKMP.Net.MailData_Imap = mail_box
Mail.Delete()
の部分です。

gmailのIMAPサーバでは、
mail_box = client.GetMailBox(0).MailDatas(0)
の実行は問題なく処理されますが、
本番環境のIMAPサーバでは、
mail_box = client.GetMailBox(0).MailDatas(0)
を実行すると
「System.IndexOutOfRangeException: インデックスが配列の境界外です。」
が表示されてしまい、次の
Dim Mail As TKMP.Net.MailData_Imap = mail_box
Mail.Delete()
が実行されませんでした。

本番環境でのIMAPサーバは、UnixOS上で稼働しているDOVECOTの2.0.9と
いうバージョンでした。

上記のケースでは、当方から本番IMAPサーバのメールアドレスに
添付ファイルを付けてメールを送信し、その後、受信、添付をファイルとして
保存、最期にメールの削除を行うという流れで処理が進みます。
その際に、最期のメールの削除の部分でエラーが発生します。

ところが、当方からの送信メールに添付ファイルを付けずに
本番IMAPサーバのメールアドレスにメール送信した場合には、
受信、添付ファイルが無いのでファイル保存を行わずにメール削除を
行うという流れではエラーが発生しません。エラーが発生しない場合でも
エラーが発生する場合と同じく
Dim mail_box
mail_box = client.GetMailBox(0).MailDatas(0)
Dim Mail As TKMP.Net.MailData_Imap = mail_box
Mail.Delete()
と実行しているのに、添付ファイルが無い場合には
「System.IndexOutOfRangeException: インデックスが配列の境界外です。」
が発生しません。

・gmailで採用しているIMAPサーバとDOVECOTのIMAPサーバでは
 GetMailBox、またはMailDatasで設定方法等が違う?
・添付ファイルの有り、無しでも
 GetMailBox、またはMailDatasで、設定方法等が違う?

と思っておりますが、
上記について、何か思い当たる事やアドバイスなど聞かせて頂けないでしょうか。

 よろしくお願いします。
 
 



メンテ

Page: 1 |

題名 スレッドをトップへソート (必ず題名内に日本語を使用してください)
名前
E-Mail
URL
パスワード (記事メンテ時に使用)
コメント 顔smile01.gif 顔smile02.gif 顔smile03.gif 顔smile04.gif 顔smile05.gif 顔smile06.gif 顔smile07.gif

   クッキー保存