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