Я генерирую данные PDF из HTML-строки на основе этого кода: https://gist.github.com/nyg/b8cd742250826cb1471f Затем я получаю pdfData
и делаю это:
let base64Data = pdfData.base64EncodedString()
let email = "email@gmail.com"
var recipients = [Any]()
recipients.append(["Email": email])
let body: [String: Any] = [
"FromEmail": "<...>@gmail.com",
"FromName": "<...>",
"Subject": "<...>",
"Text-part": "<...>",
"Recipients": recipients,
"Attachments": [
"Content-type": "application/pdf",
"Filename": "file.pdf",
"content": base64Data
]
]
let username_key = "username_key"
let password_key = "password_key"
let loginString = NSString(format: "%@:%@", username_key, password_key)
let loginData = loginString.data(using: String.Encoding.utf8.rawValue)!
let base64LoginString = loginData.base64EncodedString()
var request = URLRequest(url: URL(string: "https://api.mailjet.com/v3/send")!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("Basic <\(base64LoginString)>", forHTTPHeaderField: "Authorization")
do {
request.httpBody = try JSONSerialization.data(withJSONObject: body, options: [])
}
catch {
print("Error during JSON Serialization")
return
}
let session = URLSession.shared
let task = session.dataTask(with: request, completionHandler: { (data, response, error) in
if error == nil {
self.dismiss(animated: true, completion: nil)
} else {
// Show error alert
}
})
task.resume()
Код работаетЯ использую это также в других представлениях моего приложения.Проблема в том, что письмо отправлено без вложения.Вы видите, где проблема?Я также пытался непосредственно закодировать строку html в base64, а затем прикрепить ее в виде файла .html к электронному письму, но сообщение по-прежнему не содержит вложений.