Re: IMAPサーバでのメール削除 ( No.1 ) |
- 日時: 2018/05/10 08:35
- 名前: TT
- IMAPでの接続時も
MailData_ImapクラスのDeleteメソッドで削除できます。 内部では「Deleted」フラグがセットされます。
ただし、Gmailの削除処理は他とは違って Trashフォルダへ移動することで削除扱いになったはずです。
|
Re: IMAPサーバでのメール削除 ( No.2 ) |
- 日時: 2018/05/10 11:06
- 名前: ukimer
- TTさま
早速のご返答をありがとうございます。 先のPOPサーバでのサンプル http://uwa.potetihouse.com/samplecode/tkmp/deletemail.html では、以下のように 'メールの削除 Dim DeleteNumber As Integer = 1 ' 削除するメールのインディックス Dim Mail As TKMP.Net.MailData = pop.MailDatas(DeleteNumber) Mail.Delete()
1行目 削除するメールのインデックス この場合は1を指定 2行目 POPサーバでのサンプルなので、MailData_Imapではなく MailData クラスを使い、pop.MailDatasにインデックスの1番目を 指定する。 3行目 Deleteメソッドで削除 と記載していると理解しております。 この内容を当方は、 'メールの削除 Dim Mail As TKMP.Net.MailData_Imap = client.MailDatas(1) Mail.Delete() としております。
clientはImapClientの変数です。 POPサーバと同様に、 「インデックス等で”何番目のメール”と明示的に指示する 必要がある」と思っていて、 = client.MailDatas(1) として おりますが、VSからコンパイルエラーで 「MailDatasはImapClientのメンバーでない」旨が発生します。 上記のように「何番目のメール」を明示的に指示する必要がなく 'メールの削除 Dim Mail As TKMP.Net.MailData_Imap Mail.Delete() として、またGmailの場合は Dim Mail As TKMP.Net.MailData_Imap Mail.移動メソッド() ということでしょうか? 上記で理解が正しいとしたら、 申し訳ないですが、 http://uwa.potetihouse.com/library/tkmp/document/html/AllMembers_T_TKMP_Net_MailData_Imap.htm をみたのですが、移動メソッドに該当するのものどれなのか、解りませんで、教えて頂けないでしょうか。 よろしくお願いします。
|
Re: IMAPサーバでのメール削除 ( No.3 ) |
- 日時: 2018/05/10 11:29
- 名前: TT
- >「MailDatasはImapClientのメンバーでない」旨が発生します。
Imapはフォルダ構造を持っているので、 ImapClientからGetMailBoxかFindMailboxでMailboxのインスタンスを取得して その中のMailDatasを操作する必要がありますよ
|
Re: IMAPサーバでのメール削除 ( No.4 ) |
- 日時: 2018/05/10 12:47
- 名前: ukimer
- TTさま
下記のように理解して修正したところ、Gmailからメールの削除が できました。
Dim mail_box mail_box = client.GetMailBox(0).MailDatas(0) Dim Mail As TKMP.Net.MailData_Imap = mail_box Mail.Delete()
2行目 GetMailBoxの0番目(GmailのINBOXを指し示している)の MailDatasの0番目(INBOX内の最初のメール) 4行目 Deleteメソッドを実行
ご助言をありがとうございました。
以上
|