Как я могу определить, было ли отклонено полученное письмо или нет - PullRequest
0 голосов
/ 13 ноября 2018

Я выбрал электронную почту с серверов, используя IMAP или POP3, и ввел полученные сообщения в базу данных, но заметил, что в систему введено много сообщений с ошибками, поэтому я много раз искал в Google, чтобы проверить полученные сообщения и, если они были Я не буду вводить его в систему, и я обнаружил, что библиотека BounceDetectResult определяет, является ли электронная почта отклоненной или нет, но эта библиотека работает только с типом сообщения MimeMessage, поэтому она полезна, когда я использую IMAP, но не работает с типом сообщения OpenPop.Mime.Message. поэтому я не могу использовать его, когда использую POP3

 var result= BounceDetectorMail.Detect(message);//message type MimeMessage
        if (result.IsBounce) 
        {
            em.DelivaryFailure = true;
        }

поэтому моя проблема: я не нашел способа определить, было ли мое восстановленное сообщение отклонено или нет, когда я использую pop3 при получении

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Похоже, что библиотека MailBounceDetector , которую вы упомянули, использует мою библиотеку MimeKit , чтобы определить, является ли сообщение отклоненным сообщением.

Хорошая новостьчто вы можете использовать эту библиотеку, потому что у меня также есть библиотека, которая выполняет POP3 и называется MailKit , так что вы можете использовать ее вместо OpenPOP.NET.

0 голосов
/ 13 ноября 2018

Для тех, кому может понадобиться, из Библиотека программного обеспечения Bounce inspector , поддерживает POP3 и IMAP:

// POP3 server information.
const string serverName = "myserver";
const string user = "name@domain.com";
const string password = "mytestpassword";
const int port = 995;
const SecurityMode securityMode = SecurityMode.Implicit;
// Create a new instance of the Pop3Client class.
Pop3Client client = new Pop3Client();
Console.WriteLine("Connecting Pop3 server: {0}:{1}...", serverName, port);
// Connect to the server.
client.Connect(serverName, port, securityMode);
// Login to the server.
Console.WriteLine("Logging in as {0}...", user);
client.Authenticate(user, password);
// Initialize BounceInspector.
BounceInspector inspector = new BounceInspector();
inspector.AllowInboxDelete = false; // true if you want BounceInspector automatically delete all hard bounces.
// Register processed event handler.
inspector.Processed += inspector_Processed;
// Download messages from Pop3 Inbox to 'c:\test' and process them.
BounceResultCollection result = inspector.ProcessMessages(client, "c:\\test");
// Display processed emails.
foreach (BounceResult r in result)
{
   // If this message was identified as a bounced email message.
   if (r.Identified)
   {
       // Print out the result
       Console.Write("FileName: {0}\nSubject: {1}\nAddress: {2}\nBounce Category: {3}\nBounce Type: {4}\nDeleted: {5}\nDSN Action: {6}\nDSN Diagnostic Code: {7}\n\n",
                       System.IO.Path.GetFileName(r.FilePath),
                       r.MailMessage.Subject,
                       r.Addresses[0],
                       r.BounceCategory.Name,
                       r.BounceType.Name,
                       r.FileDeleted,
                       r.Dsn.Action,
                       r.Dsn.DiagnosticCode);
   }
}
Console.WriteLine("{0} bounced message found", result.BounceCount);
// Disconnect.
Console.WriteLine("Disconnecting...");
client.Disconnect();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...