J'essaie d'envoyer un e-mail en utilisant mailgun sur une application iOS avec Swift. Manque de sécurité de côté, je reçois toujours une erreur 400
. Si je change un peu la clé, j'obtiens un 401
pour que l'authentification fonctionne.Erreur 400 en essayant d'envoyer un e-mail avec mailgun sur iOS
Que j'utilise Alamofire:
let parameters = ["Authorization" : "api:key-...",
"from": "[email protected]",
"to": "[email protected]",
"subject": "Test",
"text": "Testing email"]
alamofireManager.request("https://api.mailgun.net/v3/sandbox...mailgun.org/messages", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil)
.authenticate(user: "api", password: "key-...")
.validate(statusCode: 200 ..< 300)
.validate(contentType: ["application/json"])
.responseJSON { response in
print(response)
print("Response : \(response.error)")
}
Ou NSMutableURLRequest:
let session = URLSession.shared
let request = NSMutableURLRequest(url: URL(string: "https://api.mailgun.net/v3/sandbox...mailgun.org/messages")!)
request.httpMethod = "POST"
let credentials = "api:key-..."
request.setValue("Basic \(Data(credentials.utf8).base64EncodedString())", forHTTPHeaderField: "Authorization")
let data = "from:Test<([email protected])>&to:[[email protected],([email protected])]&subject:Hello&text:Testing_email"
request.httpBody = data.data(using: String.Encoding.ascii)
let task = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in
if let error = error {
print(error)
}
if let response = response {
print("url = \(response.url!)")
print("response = \(response)")
let httpResponse = response as! HTTPURLResponse
print("response code = \(httpResponse.statusCode)")
}
})
task.resume()
je reçois un 400
toujours. Je ne vois pas ce qui ne va pas dans mes paramètres. Une idée?
La requête n'a pas pu être comprise par le serveur en raison d'une syntaxe mal formée. Le client NE DEVRAIT PAS répéter la demande sans modifications. –
vérifiez votre URL et demandez le corps –
L'URL est bien comme si je change quelque chose, je reçois un '404'. Et oui, je suppose que le problème pourrait provenir du corps de la requête, mais je ne vois pas d'erreur, insinuez mon message ici. – Nico