![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(Swift) Bounced Email HandlingDemonstrates how to examine emails and detect which are bounced (automated) replies. Classifies each email according to the type of bounce.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. let bounce = CkoBounce()! // The mailman object is used for receiving (POP3) // and sending (SMTP) email. let mailman = CkoMailMan()! // 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.) var bundle: CkoEmailBundle? = mailman.copyMail() if mailman.lastMethodSuccess == false { print("\(mailman.lastErrorText!)") return } var i: Int = 0 var email: CkoEmail? while i < bundle!.messageCount.intValue { email = bundle!.getEmail(i) var success: Bool = bounce.examine(email) if success == false { print("\(bounce.lastErrorText!)") bundle = nil return } if bounce.bounceType.intValue == 1 { // Hard bounce, log the email address print("Hard Bounce: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 2 { // Soft bounce, log the email address print("Soft Bounce: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 3 { // General bounce, no email address available. print("General Bounce: No email address") } if bounce.bounceType.intValue == 4 { // General bounce, log the email address print("General Bounce: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 5 { // Mail blocked, log the email address // A bounce occured because the sender was blocked. print("Mail Blocked: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 6 { // Auto-reply, log the email address print("Auto-Reply: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 7 { // Transient (recoverable) Failure, log the email address print("Transient Failure: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 8 { // Subscribe request, log the email address print("Subscribe Request: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 9 { // Unsubscribe Request, log the email address print("Unsubscribe Request: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 10 { // Virus Notification, log the email address print("Virus Notification: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 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.intValue == 12 { // Challenge/Response - Auto-reply message sent by SPAM software // where only verified email addresses are accepted. print("Challenge: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 13 { // Address Change Notification Message. print("Address Change: \(bounce.bounceAddress!)") } if bounce.bounceType.intValue == 14 { // Success DSN indicating that the message was successfully relayed. print("DSN Successful Relay: ") } email = nil i = i + 1 } bundle = nil success = mailman.pop3EndSession() } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.