MailSystem.NET に詳しい人はいますか?
Gmail アカウントの新着メールを定期的にチェックするアプリがあります。件名に特定の語句が含まれている場合、アクションが実行されます。ただし、特定のメッセージを未読としてマークするには、アプリを少し変更する必要があります。
これが既存のコードです。ボタンをクリックすると、logInLogOut() サブルーチンが呼び出され、別のスレッドで checkNewMail() サブルーチンを呼び出すことによってアプリが定期的に新着メールをチェックするタイマーが開始されます。アプリは意図したとおりに動作しますが、以下は最善の方法ではない可能性があります.
private void logInLogOut()
{
try
{
Client.ConnectSsl(txtIMAPServer.Text, int.Parse(txtIMAPPort.Text));
Client.Login(@txtUserName.Text, txtPassword.Text);
globalClientConnected = true;
}
catch (Exception ex)
{
globalClientConnected = false;
}
}
private void checkNewMail()
{
if (globalClientConnected)
{
foreach (ActiveUp.Net.Mail.Message email in GetUnreadMails("Inbox"))
{
string from = parseEmailAddress(email.From.ToString());
string subject = email.Subject;
string receivedDateTime = email.ReceivedDate.Date.ToString()
string updateString = receivedDateTime + ", " + from + ", " + subject + "\r\n";
if (subject.Contains("ABC"))
{
string to = from;
try
{
//do something
}
catch (Exception ex)
{
//bla bla
}
}
else
{
//If mail subject not like "ABC"
//Do something else
//Mark the mail as unread
}
}
}
}