Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(C# UWP/WinRT) Bounced Email HandlingDemonstrates how to examine emails and detect which are bounced (automated) replies. Classifies each email according to the type of bounce.
// This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Chilkat.Bounce bounce = new Chilkat.Bounce(); // The mailman object is used for receiving (POP3) // and sending (SMTP) email. Chilkat.MailMan mailman = new Chilkat.MailMan(); // Set the POP3 server's hostname mailman.MailHost = "mail.chilkatsoft.com"; // Set the POP3 login/password. mailman.PopUsername = "myLogin"; mailman.PopPassword = "myPassword"; // Copy the all email from the user's POP3 mailbox // into a bundle object. The email remains on the server. // (There are other methods for deleting email from a POP3 server.) Chilkat.EmailBundle bundle = await mailman.CopyMailAsync(); if (mailman.LastMethodSuccess == false) { Debug.WriteLine(mailman.LastErrorText); return; } int i = 0; Chilkat.Email email = null; while (i < bundle.MessageCount) { email = bundle.GetEmail(i); bool success = bounce.ExamineEmail(email); if (success == false) { Debug.WriteLine(bounce.LastErrorText); return; } if (bounce.BounceType == 1) { // Hard bounce, log the email address Debug.WriteLine("Hard Bounce: " + bounce.BounceAddress); } if (bounce.BounceType == 2) { // Soft bounce, log the email address Debug.WriteLine("Soft Bounce: " + bounce.BounceAddress); } if (bounce.BounceType == 3) { // General bounce, no email address available. Debug.WriteLine("General Bounce: No email address"); } if (bounce.BounceType == 4) { // General bounce, log the email address Debug.WriteLine("General Bounce: " + bounce.BounceAddress); } if (bounce.BounceType == 5) { // Mail blocked, log the email address // A bounce occured because the sender was blocked. Debug.WriteLine("Mail Blocked: " + bounce.BounceAddress); } if (bounce.BounceType == 6) { // Auto-reply, log the email address Debug.WriteLine("Auto-Reply: " + bounce.BounceAddress); } if (bounce.BounceType == 7) { // Transient (recoverable) Failure, log the email address Debug.WriteLine("Transient Failure: " + bounce.BounceAddress); } if (bounce.BounceType == 8) { // Subscribe request, log the email address Debug.WriteLine("Subscribe Request: " + bounce.BounceAddress); } if (bounce.BounceType == 9) { // Unsubscribe Request, log the email address Debug.WriteLine("Unsubscribe Request: " + bounce.BounceAddress); } if (bounce.BounceType == 10) { // Virus Notification, log the email address Debug.WriteLine("Virus Notification: " + bounce.BounceAddress); } if (bounce.BounceType == 11) { // Suspected bounce. // This should be rare. It indicates that the Bounce // component found strong evidence that this is a bounced // email, but couldn't quite recognize everything it // needed to be 100% sure. Feel free to notify // support@chilkatsoft.com regarding emails having this // bounce type. Debug.WriteLine("Suspected Bounce!"); } if (bounce.BounceType == 12) { // Challenge/Response - Auto-reply message sent by SPAM software // where only verified email addresses are accepted. Debug.WriteLine("Challenge: " + bounce.BounceAddress); } if (bounce.BounceType == 13) { // Address Change Notification Message. Debug.WriteLine("Address Change: " + bounce.BounceAddress); } if (bounce.BounceType == 14) { // Success DSN indicating that the message was successfully relayed. Debug.WriteLine("DSN Successful Relay: "); } i = i + 1; } success = await mailman.Pop3EndSessionAsync(); |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.