Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Chilkat2-Python) Bounced Email HandlingDemonstrates how to examine emails and detect which are bounced (automated) replies. Classifies each email according to the type of bounce.
import sys import chilkat2 # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. bounce = chilkat2.Bounce() # The mailman object is used for receiving (POP3) # and sending (SMTP) email. mailman = chilkat2.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.) # bundle is a CkEmailBundle bundle = mailman.CopyMail() if (mailman.LastMethodSuccess == False): print(mailman.LastErrorText) sys.exit() i = 0 while i < bundle.MessageCount : # email is a CkEmail email = bundle.GetEmail(i) success = bounce.ExamineEmail(email) if (success == False): print(bounce.LastErrorText) sys.exit() if (bounce.BounceType == 1): # Hard bounce, log the email address print("Hard Bounce: " + bounce.BounceAddress) if (bounce.BounceType == 2): # Soft bounce, log the email address print("Soft Bounce: " + bounce.BounceAddress) if (bounce.BounceType == 3): # General bounce, no email address available. print("General Bounce: No email address") if (bounce.BounceType == 4): # General bounce, log the email address print("General Bounce: " + bounce.BounceAddress) if (bounce.BounceType == 5): # Mail blocked, log the email address # A bounce occured because the sender was blocked. print("Mail Blocked: " + bounce.BounceAddress) if (bounce.BounceType == 6): # Auto-reply, log the email address print("Auto-Reply: " + bounce.BounceAddress) if (bounce.BounceType == 7): # Transient (recoverable) Failure, log the email address print("Transient Failure: " + bounce.BounceAddress) if (bounce.BounceType == 8): # Subscribe request, log the email address print("Subscribe Request: " + bounce.BounceAddress) if (bounce.BounceType == 9): # Unsubscribe Request, log the email address print("Unsubscribe Request: " + bounce.BounceAddress) if (bounce.BounceType == 10): # Virus Notification, log the email address print("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. print("Suspected Bounce!") if (bounce.BounceType == 12): # Challenge/Response - Auto-reply message sent by SPAM software # where only verified email addresses are accepted. print("Challenge: " + bounce.BounceAddress) if (bounce.BounceType == 13): # Address Change Notification Message. print("Address Change: " + bounce.BounceAddress) if (bounce.BounceType == 14): # Success DSN indicating that the message was successfully relayed. print("DSN Successful Relay: ") i = i + 1 success = mailman.Pop3EndSession() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.