Отправка писем с использованием mailCore2 с кодом ошибки = 30

Я использую MailCore2 Framework для отправки писем. Я не использую MFMailComposer, потому что требование не иметь никакого пользовательского интерфейса для электронной почты. Мы только что получили идентификатор электронной почты и нажатием кнопки отправили некоторую информацию на адрес электронной почты. Это мой код, упомянутый ниже

 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:"INVESTOR@xxx.com")
        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". Я попытался изменить разные порты, тип подключения. Ничего не работает Пожалуйста помоги

1 ответ

Ваш вопрос связан не с mailcore2, а с почтовым сервером, который вы используете. Сообщение об ошибке "550 Denied for External Relay" означает, что почтовый сервер, к которому вы подключаетесь, не настроен на отправку в другие домены. Поговорите с почтмейстером этого сервера SMTP, если вы считаете, что конфигурация была ошибочной. (postmaster@, вместо домена вставьте домен сервера)

Другие вопросы по тегам