C#LumiSoftを使用Net.dll IMAPを通じてQQメールボックスにログインして未読メールを読み取る
4415 ワード
一、まず、登録する必要があるQQメールボックスのアカウントはIMAP機能をオンにして、メールボックスの設定に入って、IMAP機能をオンにした後に一連のパスワードを取得して、これは次に登録する必要があるパスワードで、必ずオンにしてください;
二、LumiSoftが必要です.Net.dll;
三、LumiSoft.Net.dllの開発環境は.Net 2.0 MicrosoftVisual Studioシリーズツールを使用する場合は、プロジェクト環境の変更に注意してください.Ps:.Net 2.0はlinqをサポートしていません
1、宣言
クライアントオブジェクトのインスタンス化;
2、メールボックスに登録する
3、メールパラメータの設定を取得する
二、LumiSoftが必要です.Net.dll;
三、LumiSoft.Net.dllの開発環境は.Net 2.0 MicrosoftVisual Studioシリーズツールを使用する場合は、プロジェクト環境の変更に注意してください.Ps:.Net 2.0はlinqをサポートしていません
1、宣言
IMAP_Client client = new IMAP_Client();
クライアントオブジェクトのインスタンス化;
2、メールボックスに登録する
client.Connect("imap.qq.com", 993, true);
string path = System.Environment.CurrentDirectory + "//user.txt";
if (!File.Exists(path)) {
Console.WriteLine(" 。");
return;
}
string emailAccount;
string password;
using (FileStream fs = new FileStream(path, FileMode.Open)) {
StreamReader sr = new StreamReader(fs);
emailAccount = sr.ReadLine();
password = sr.ReadLine();
}
Console.WriteLine(emailAccount + password);
client.Login(emailAccount, password);
client.SelectFolder("INBOX");
ブロガーが使用するファイルはアカウントとパスワードを読み取るのが便利で、省のコードを変更します.3、メールパラメータの設定を取得する
var seqSet = IMAP_t_SeqSet.Parse("1:*");
seqSet.GetType();
var items = new IMAP_t_Fetch_i[]
{
new IMAP_t_Fetch_i_Envelope(),
new IMAP_t_Fetch_i_Uid(),// ---
new IMAP_t_Fetch_i_Flags(),// ----- :/Seen( \Seen, , ) : ...
new IMAP_t_Fetch_i_InternalDate(),
new IMAP_t_Fetch_i_Rfc822()// ----
};
4、Fetch読み取りメール //Fetch false seqSet
client.Fetch(false, seqSet, items, (s, ex) =>
{
try
{
var email = ex.Value as IMAP_r_u_Fetch;
if (!email.Flags.Flags.ToString().Equals("\\Seen"))
{
if (email.Envelope.Subject.Contains(" "))
{
Console.WriteLine(email.Flags.Flags);
Console.WriteLine(" :" + email.UID.UID + ",||" + email.InternalDate.Date + ",||" + email.Envelope.Subject);
Console.WriteLine("------------ ------------------------");
if (email.Rfc822 != null)
{
email.Rfc822.Stream.Position = 0;
var mine = Mail_Message.ParseFromStream(email.Rfc822.Stream);
email.Rfc822.Stream.Close();
if (toolBox.findData(mine.BodyHtmlText))//mine.BodyHtmlText
{
delMail(email.UID.UID);
}
}
}
else
{
delMail(email.UID.UID);
}
}
}
catch (Exception exx)
{
Console.WriteLine("Handle-Err:" + exx.Message);
}
});
5、
try
{
var sequenceSet = new IMAP_SequenceSet();
sequenceSet.Parse(uid.ToString());
client.StoreMessageFlags(true, sequenceSet, IMAP_Flags_SetType.Add, IMAP_MessageFlags.Deleted);
Console.WriteLine("----------------");
client.Expunge();//
}
catch (Exception x)
{
Console.WriteLine(x.ToString());
Console.WriteLine(x.Message);
}
over.