Я использую Mailcore 2 в Swift 4 для отправки подтверждения по электронной почте пользователям.Письмо содержит глубокую ссылку для приложения.Ссылка работает нормально, когда пользователь проверяет свою электронную почту в приложении iPhone Mail, но на нее нельзя нажать, если пользователь открывает свою почту в браузере или любом другом приложении.
let smtpSession = MCOSMTPSession()
smtpSession.hostname = "smtp.office365.com"//"m.outlook.com"
smtpSession.username = "..."
smtpSession.password = "..."
smtpSession.port = 587//25
//smtpSession.authType = MCOAuthType.xoAuth2Outlook//xoAuth2Outlook
smtpSession.connectionType = MCOConnectionType.startTLS//TLS
smtpSession.connectionLogger = {(connectionID, type, data) in
if data != nil {
if let string = NSString(data: data!, encoding: String.Encoding.utf8.rawValue){
NSLog("Connectionlogger: \(string)")
}
}
}
let builder = MCOMessageBuilder()
builder.header.to = [MCOAddress(displayName: "Student", mailbox:bodyTextField.text)]
builder.header.from = MCOAddress(displayName: "PU APP", mailbox: "...")
builder.header.subject = "PU APP Verification"
let appLink = "phoeniciaUniversitypumobileapp://"
builder.htmlBody = "<h1 align='center'>Congrats</h1> <p>Welcome and thank you for installing the PU App.\n Please click <a href = " + appLink + ">here</a> to start your experience</p> <p> \n Regards,</p><p>The IT depaartment.</p>"
let rfc822Data = builder.data()
let sendOperation = smtpSession.sendOperation(with: rfc822Data)
sendOperation?.start { (error) -> Void in
if (error != nil) {
NSLog("Error sending email: \(String(describing: error))")
alert.dismiss(animated: false, completion: nil)
} else {
NSLog("Successfully sent email!")
alert.dismiss(animated: false, completion: nil)
let deviceID = UIDevice.current.identifierForVendor?.uuidString
UserDefaults.standard.set(deviceID, forKey: "savedDeviceID")
self.showSuccessfulAlert()
}
}
В приложении iPhone Mail: В почтовом приложении
приложение Outlook