Отправка писем с использованием 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@, вместо домена вставьте домен сервера)