2016-09-28 4 views
0

전자 메일을 보내려면 MailCore2 프레임 워크를 사용하고 있습니다. 요구 사항은 전자 메일에 대한 UI가 없으므로 MFMailComposer를 사용하지 않습니다. 우리는 이메일 주소를 얻고 버튼 클릭만으로 정보를 이메일 주소로 보냅니다. 내 "을"이메일 조직, 그 작업 벌금 경우 이것은 내 코드는mailCore2를 사용하여 전자 메일 보내기 오류 코드 = 30

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) 

      } 
     }) 
    } 

아래에 언급되어있다. 하지만 일부 외부에 전자 메일을 보내려고하면 계정 'Error Domain = MCOErrorDomain Code = 30'오류가 발생합니다. 다른 포트, 연결 유형을 변경해 보았습니다. 아무것도 작동하지 않습니다. 도와주세요

+0

서버가 보내는 정확한 오류 메시지를 알아 내기 위해 connectionLogger를 사용할 수 있습니까? –

+0

Connectionlogger : 550 5.0.0 외부 릴레이에 대해 거부 됨 : [email protected] – Nitya

+0

연결 로거에 표시되는 오류 메시지입니다. – Nitya

답변

0

귀하의 질문은 mailcore2와 관련이 없으며 귀하가 사용하고있는 메일 서버와 관련이 있습니다. '550 Relied for External Relay'오류 메시지는 연결하려는 메일 서버가 다른 도메인으로 보낼 수 있도록 구성되어 있지 않다는 것을 의미합니다. 구성에 오류가 있다고 생각되면 해당 smtp 서버의 포스트 마스터에게 이야기하십시오. (postmaster @는 대신 서버 도메인을 삽입하십시오.)