Amazon SES не отправляет электронную почту на идентификаторы Gmail? - PullRequest
1 голос
/ 16 марта 2020

Я использую 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
}

Может кто-нибудь, пожалуйста, помогите мне с этим. Чтобы я мог узнать, что с моим кодом есть какая-то проблема или есть какая-то другая проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...