Я использую Amazon SES SDK в моем приложении для отправки электронных писем из приложения. В приложении android sdk отправляет электронные письма на все адреса электронной почты, но из приложения iOS я не могу отправить электронное письмо на адреса электронной почты Gmail. Я могу отправить письмо на любой другой почтовый сервис из приложения iOS, но оно не работает с идентификаторами gmail. Я использую приведенный ниже код для отправки электронного письма в необработанном формате, потому что я должен отправить изображения в виде вложений в электронное письмо.
let credentials = AWSStaticCredentialsProvider(accessKey: "XXXXX", secretKey: "XXXXX")
let configuration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: credentials)
AWSServiceManager.default().defaultServiceConfiguration = configuration
let attachment = UIImageJPEGRepresentation(image, 0)
let attachmentString = attachment!.base64EncodedString(options: .lineLength64Characters)
let MIMEDataType = "image/jpeg"
let attachmentName = "screenshot1"
let attachment2 = UIImageJPEGRepresentation(image2, 0)
let attachmentString2 = attachment2!.base64EncodedString(options: .lineLength64Characters)
let attachmentName2 = "screenshot2"
let message:String = """
Subject: \(String)
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="XXXXboundary text"
This is a multipart message in MIME format.
--XXXXboundary text
Content-Type: text/plain
\(data)
--XXXXboundary text
Content-Type: \(MIMEDataType);
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="\(attachmentName).\(MIMEDataType.components(separatedBy: "/")[1])"
\(attachmentString)
--XXXXboundary text
Content-Type: \(MIMEDataType);
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="\(attachmentName2).\(MIMEDataType.components(separatedBy: "/")[1])"
\(attachmentString2)
--XXXXboundary text--
"""
let data = message.data(using: .utf8)
let rawMessage = AWSSESRawMessage()
rawMessage?.data = data
let rawRequest = AWSSESSendRawEmailRequest()
rawRequest?.destinations = toEmail
rawRequest?.source = "xxxx@xxxx.com"
rawRequest?.rawMessage = rawMessage
AWSSES
.default()
.sendRawEmail(rawRequest!)
.continueOnSuccessWith { (task) -> Any? in
success(Strings.ResultSharedOnEmail)
}
.continueWith { (task) -> Any? in
if task.error != nil {
print("Error sending email")
print(task.error?.localizedDescription ?? "")
let type : String? = (task.error! as NSError).userInfo["Type"] as? String
print("Type : \(type ?? "")")
let errorMessage : String? = (task.error! as NSError).userInfo["Message"] as? String
print("Message: \(errorMessage ?? "")")
var code : String? = (task.error! as NSError).userInfo["Code"] as? String
code = (code != nil ? code : "Unknown")
print("Code : \(code ?? "")")
failure(errorMessage ?? "")
}
return nil
}
Может кто-нибудь, пожалуйста, помогите мне с этим. Чтобы я мог узнать, что с моим кодом есть какая-то проблема или есть какая-то другая проблема.