2016-09-28 2 views
0

私はメールを送信するためにMailCore2フレームワークを使用しています。 という要件は電子メールのUIを持っていないため、私はMFMailComposerを使用していません。我々はちょうど電子メールIDを取得し、いくつかの情報を送信するボタンのクリックで 電子メールアドレスに。私の「へ」のメールは、組織内の、その作業罰金である場合には これは私のコードはエラーコード= 30を与えるmailCore2を使用してメールを送信

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 Relayに対して拒否されました'というエラーメッセージは、接続先のメールサーバーが他のドメインに送信できるように構成されていないことを意味します。 設定が間違っていると思われる場合は、そのsmtpサーバのpostmasterに問い合わせてください。 (postmaster @の代わりにサーバのドメインを挿入してください)

関連する問題