2016-09-28 1 views
0

Ich benutze MailCore2 Framework, um E-Mails zu senden. Ich verwende MFMailComposer nicht, da die Anforderung keine Benutzeroberfläche für E-Mails haben soll. Wir bekommen nur eine E-Mail-ID und klicken auf den Button, um einige Informationen an die E-Mail-Adresse zu senden: . Dies ist mein Code untenSenden von E-Mails mit mailCore2 mit Fehlercode = 30

erwähnt
func sendEmailToCustomer(emailid:String?) 
    { 
     let session : MCOSMTPSession = MCOSMTPSession() 
     session.hostname = "mail.***.com" 
     session.port = 25 
     session.connectionType = MCOConnectionType.clear 

     let builder = MCOMessageBuilder() 
     builder.header.from = MCOAddress(displayName: " iPad App", mailbox:"[email protected]") 
     builder.header.to = [MCOAddress(displayName: "iPad App", mailbox:emailid)] 

     builder.header.subject = "Email Link \(NSUserDefaults.standardUserDefaults().valueForKey("branch_id")!)" 
     builder.htmlBody = "Thanks for choosing . Here is link you wanted to have in your inbox \n \((webView.request?.URL?.absoluteString)!))" 
     let data = builder.data() 

     let sendOperation : MCOSMTPSendOperation = session.sendOperationWithData(data) 
     NSUserDefaults .standardUserDefaults().setValue(emailid, forKey: "Customer_EmailId") 
     sendOperation.start({ 
      (error : NSError?) -> Void in 

      if(error != nil){ 
       //Keep sending the email till it succeeds. needs to know for security reasons. 
       // self.sendEmailToCustomer(emailid) 
       print("customer email failed.\(error?.code) \(error)") 
       self.showAlertMessage(MESSAGE_EMAIL_Not_SENT, title:"Email Not Sent", actions: [UIAlertAction(title: "OK", style: .Default) {action in 
        }], withSound: false) 
       Crittercism.leaveBreadcrumb("customer email failed") 
      } 
      else{ 
       //Email sent successfully. 

       print("Email sent successfully \(emailid)") 
       self.showAlertMessage(MESSAGE_EMAIL_SENT, title:"Email Sent", actions: [UIAlertAction(title: "OK", style: .Default) {action in 
        }], withSound: false) 

      } 
     }) 
    } 

Als meine „auf“ E-Mail mit in der Organisation, seine Arbeit in Ordnung ist. Aber wenn ich versuche, E-Mail an einige außerhalb Konto zu senden, dann Fehler "Fehler Domain = MCOErrorDomain Code = 30" Ich habe versucht, verschiedene Ports, Verbindungstyp ändern. Nichts funktioniert. Bitte helfen Sie

+0

Können Sie den ConnectionLogger verwenden, um die genaue Fehlermeldung zu ermitteln, die der Server sendet? –

+0

Connectionlogger: 550 5.0.0 550 für externes Relais verweigert: [email protected] – Nitya

+0

Dies ist eine Fehlermeldung, die ich in Verbindung Logger bekomme – Nitya

Antwort

0

Ihre Frage bezieht sich nicht auf mailcore2, sondern auf den von Ihnen verwendeten Mailserver. Die Fehlermeldung "550 für externes Relay verweigert" bedeutet, dass der Mail-Server, mit dem Sie eine Verbindung herstellen, nicht für das Senden an andere Domänen konfiguriert ist. Sprechen Sie mit dem Postmaster dieses SMTP-Servers, wenn Sie glauben, dass die Konfiguration fehlerhaft ist. (postmaster @, fügen Sie die Domäne des Servers statt)

Verwandte Themen