连接到 Mailgun

Connection to Mailgun

我正在尝试使用我的凭据连接到 Mailgun.com。这是代码:

    let session = URLSession.shared
    var request = URLRequest(url: URL(string:"https://api.mailgun.net/v3/sandboxXXX.mailgun.org/logs")!)
    request.httpMethod = "POST"
    let key = "api:key-XXX"
    request.setValue("Basic \(toBase64(string: key))", forHTTPHeaderField: "Authorization")

    let task = session.dataTask(with: request, completionHandler:{(data, response, error) in
        if let err = error {
            print(err)
        }
        if let response = response {
            print("url = \(response.url!)")
            print("response = \(response)")
            let httpResponse = response as! HTTPURLResponse
            print("response code = \(httpResponse.statusCode)")
        }

    })
    task.resume()

结果:响应代码 = 200 - 一切正常

在我尝试连接到 mailgun 之后。com/xxx/messages

    let session = URLSession.shared
    var request = URLRequest(url: URL(string:"https://api.mailgun.net/v3/sandboxXXX.mailgun.org/messages")!)
    request.httpMethod = "POST"
    let data = "from=Excited%20User<mailgun@sandboxXXX.mailgun.org>&to=[mail@mail.com]&subject=Hello&text=Testing%20gsome%20Mailgun%20awesomness!"
    let key = "api:key-XXX"
    request.httpBody = data.data(using: .ascii)
    request.setValue("Basic \(toBase64(string: key))", forHTTPHeaderField: "Authorization") 
    let task = session.dataTask(with: request, completionHandler:
    {(data, response, error) in { 
     // the same as above 
    })
    task.resume()

结果:响应代码 = 400 或 401。 我有红色:How to send POST parameters in Swift?。 我尝试多次更改 datarequest.httpBody 中的字符串编码 - 但没有任何效果。我应该怎么做才能解决这个问题?

不要使用方括号就没有必要了(民间智慧):)

应该是:

let data = "from=Excited%20User<mailgun@sandboxXXX.mailgun.org>
            &to=mail@mail.com //!!! instead of [mail@mail.com] in the original code
            &subject=Hello
            &text=Testing%20gsome%20Mailgun%20awesomness!"