C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: MailKit 未受信分だけメールのダウンロード


(過去ログ 164 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■94895 / inTopicNo.1)  MailKit 未受信分だけメールのダウンロード
  
□投稿者/ ぱぴ (1回)-(2020/06/01(Mon) 14:48:14)

分類:[.NET 全般] 

いつも参考にさせてもらっています

今メールの受信するプログラムを作成しています

メールを受信したときに削除せずにメールを受信していますが(過去20日分のみ残す)
メール件数が多くなると受信処理に時間がかかります

未受信分のメールだけ取得する、ような設定はできないのでしょうか?


受信ロジック
Dim lPop3 = New MailKit.Net.Pop3.Pop3Client()
lPop3.Connect(aRecvMailServer, aRecvMailPort, SecureSocketOptions.None) ' 接続
lPop3.Authenticate(aRecvMailFromAdr, aRecvMailFromPass) ' 認証

' メール受信ループ
For lNum = 0 To lPop3.Count - 1
lMailMsg(lNum) = lPop3.GetMessage(lNum) ← 受信内容を配列に設定して返す
Next

lPop3.Disconnect(True)

Reutn lMailMsg

開発環境
VisualStadio2019
メール受信モジュール :MailKit,MimeKit


引用返信 編集キー/
■94896 / inTopicNo.2)  Re[1]: MailKit 未受信分だけメールのダウンロード
□投稿者/ furu (40回)-(2020/06/01(Mon) 18:44:33)
No94895 (ぱぴ さん) に返信
> 未受信分のメールだけ取得する、ような設定はできないのでしょうか?
GetMessageUidsメソッドでUIDLの一覧取得して
前回までに受信していないメールだけ
受信するようにする。

ファイルやデータベースなどで
受信済みのUIDLを管理しないといけない。
引用返信 編集キー/
■94903 / inTopicNo.3)  Re[2]: MailKit 未受信分だけメールのダウンロード
□投稿者/ ぱぴ (2回)-(2020/06/02(Tue) 16:41:44)
ありがとうございました
未処理分がチェックできるようになりました

ここで気づいたのですが、未受信分だけしか取得しないようにすると
保存期間を超えたメール削除するロジックが動かなくなりました(未受信分は保存期間内なので)

GetMessageUidsメソッドと同じように受信時間だけを一気に取得することは可能でしょうか?

No94896 (furu さん) に返信
> ■No94895 (ぱぴ さん) に返信
>>未受信分のメールだけ取得する、ような設定はできないのでしょうか?
> GetMessageUidsメソッドでUIDLの一覧取得して
> 前回までに受信していないメールだけ
> 受信するようにする。
>
> ファイルやデータベースなどで
> 受信済みのUIDLを管理しないといけない。
引用返信 編集キー/
■94904 / inTopicNo.4)  Re[3]: MailKit 未受信分だけメールのダウンロード
□投稿者/ furu (41回)-(2020/06/02(Tue) 19:10:25)
No94903 (ぱぴ さん) に返信
> GetMessageUidsメソッドと同じように受信時間だけを一気に取得することは可能でしょうか?

それらは未受信でなく一度受信したのメールですよね。
無駄なのでUIDLといっしょに自分家で管理してください。

例えば、100年経ったメールを削除すると決めると
毎回100年分のメールの時間を取得することになってしまいます。

そもそもメールに受信時間は入っていないと思いますが
何をもって「受信時間」と言っていますか?
引用返信 編集キー/
■94919 / inTopicNo.5)  Re[4]: MailKit 未受信分だけメールのダウンロード
□投稿者/ ぱぴ (3回)-(2020/06/04(Thu) 09:29:33)
>そもそもメールに受信時間は入っていないと思いますが
>何をもって「受信時間」と言っていますか?

MimeKit.MimeMessageのプロパティに「Date」があったのでそれを受信日時だと思っていました
よく考えたらこれは送信日時ですね

一気にやろうとせず設定期限を超えるメールは別PGで作成しようと思います

どうもありがとうございました
引用返信 編集キー/
■94939 / inTopicNo.6)  Re[5]: MailKit 未受信分だけメールのダウンロード
□投稿者/ ぱぴ (4回)-(2020/06/04(Thu) 17:00:54)
No94919 (ぱぴ さん) に返信
> >そもそもメールに受信時間は入っていないと思いますが
> >何をもって「受信時間」と言っていますか?
>
> MimeKit.MimeMessageのプロパティに「Date」があったのでそれを受信日時だと思っていました
> よく考えたらこれは送信日時ですね
>
> 一気にやろうとせず設定期限を超えるメールは別PGで作成しようと思います
>
> どうもありがとうございました
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -