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. require 'chilkat' bounce = Chilkat::CkBounce.new() success = bounce.UnlockComponent("Anything for 30-day trial") if (success == false) print bounce.lastErrorText() + "\n" exit end # The mailman object is used for receiving (POP3) # and sending (SMTP) email. mailman = Chilkat::CkMailMan.new() # Any string argument automatically begins the 30-day trial. success = mailman.UnlockComponent("30-day trial") if (success != true) print mailman.lastErrorText() + "\n" exit end # 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 == nil ) print mailman.lastErrorText() + "\n" exit end for i in 0 .. bundle.get_MessageCount() - 1 # email is a CkEmail email = bundle.GetEmail(i) success = bounce.ExamineEmail(email) if (success == false) print bounce.lastErrorText() + "\n" exit end if (bounce.get_BounceType() == 1) # Hard bounce, log the email address print "Hard Bounce: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 2) # Soft bounce, log the email address print "Soft Bounce: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 3) # General bounce, no email address available. print "General Bounce: No email address" + "\n"; end if (bounce.get_BounceType() == 4) # General bounce, log the email address print "General Bounce: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 5) # Mail blocked, log the email address # A bounce occured because the sender was blocked. print "Mail Blocked: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 6) # Auto-reply, log the email address print "Auto-Reply: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 7) # Transient (recoverable) Failure, log the email address print "Transient Failure: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 8) # Subscribe request, log the email address print "Subscribe Request: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 9) # Unsubscribe Request, log the email address print "Unsubscribe Request: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 10) # Virus Notification, log the email address print "Virus Notification: " + bounce.bounceAddress() + "\n"; end 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!" + "\n"; end 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() + "\n"; end if (bounce.get_BounceType() == 13) # Address Change Notification Message. print "Address Change: " + bounce.bounceAddress() + "\n"; end if (bounce.get_BounceType() == 14) # Success DSN indicating that the message was successfully relayed. print "DSN Successful Relay: " + "\n"; end end mailman.Pop3EndSession() |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.