Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
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 chilkat bounce = chilkat.CkBounce() success = bounce.UnlockComponent("Anything for 30-day trial") if (success == False): print bounce.lastErrorText() sys.exit() # The mailman object is used for receiving (POP3) # and sending (SMTP) email. mailman = chilkat.CkMailMan() # Any string argument automatically begins the 30-day trial. success = mailman.UnlockComponent("30-day trial") if (success != True): print mailman.lastErrorText() sys.exit() # Set the POP3 server's hostname mailman.put_MailHost("mail.chilkatsoft.com") # Set the POP3 login/password. mailman.put_PopUsername("myLogin") mailman.put_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 (bundle == None ): print mailman.lastErrorText() sys.exit() for i in range(0,bundle.get_MessageCount()): # email is a CkEmail email = bundle.GetEmail(i) success = bounce.ExamineEmail(email) if (success == False): print bounce.lastErrorText() sys.exit() if (bounce.get_BounceType() == 1): # Hard bounce, log the email address print "Hard Bounce: " + bounce.bounceAddress() if (bounce.get_BounceType() == 2): # Soft bounce, log the email address print "Soft Bounce: " + bounce.bounceAddress() if (bounce.get_BounceType() == 3): # General bounce, no email address available. print "General Bounce: No email address" if (bounce.get_BounceType() == 4): # General bounce, log the email address print "General Bounce: " + bounce.bounceAddress() if (bounce.get_BounceType() == 5): # Mail blocked, log the email address # A bounce occured because the sender was blocked. print "Mail Blocked: " + bounce.bounceAddress() if (bounce.get_BounceType() == 6): # Auto-reply, log the email address print "Auto-Reply: " + bounce.bounceAddress() if (bounce.get_BounceType() == 7): # Transient (recoverable) Failure, log the email address print "Transient Failure: " + bounce.bounceAddress() if (bounce.get_BounceType() == 8): # Subscribe request, log the email address print "Subscribe Request: " + bounce.bounceAddress() if (bounce.get_BounceType() == 9): # Unsubscribe Request, log the email address print "Unsubscribe Request: " + bounce.bounceAddress() if (bounce.get_BounceType() == 10): # Virus Notification, log the email address print "Virus Notification: " + bounce.bounceAddress() if (bounce.get_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.get_BounceType() == 12): # Challenge/Response - Auto-reply message sent by SPAM software # where only verified email addresses are accepted. print "Challenge: " + bounce.bounceAddress() if (bounce.get_BounceType() == 13): # Address Change Notification Message. print "Address Change: " + bounce.bounceAddress() if (bounce.get_BounceType() == 14): # Success DSN indicating that the message was successfully relayed. print "DSN Successful Relay: " mailman.Pop3EndSession() |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.