Mailgun API отклоняет сообщения по неизвестной причине - PullRequest
0 голосов
/ 30 апреля 2020

Я провел небольшой тест (три сообщения) отправки HTML электронной почты. Все три отклонены (400) со следующим:

{https://api.mailgun.net:443 "POST /v3/mg001.[mydomain].com/messages.mime HTTP/1.1" 400 0}

Я буквально понятия не имею, что он говорит мне.

Код python, который «отправляет» электронное письмо:

def send_message(sender, subject, body_text, body_html, recipient):
    return requests.post(
        "https://api.mailgun.net/v3/mg001.[mydomain].com/messages.mime",
        auth=("api", "[myapikey]"),
        data={"from": sender,
              "to": recipient,
              "subject": subject,
              "text": body_text,
              "html": body_html},
        headers={"Content-Type": "multipart/form-data"}
        )

У меня немного другой код, который отлично отправляет электронную почту, отличную от html, поэтому я знаю, что в моей учетной записи или ключе API нет ничего плохого, et c.

Если кто-то может указать я в правильном направлении, я был бы благодарен.

1 Ответ

1 голос
/ 01 мая 2020

В документах написано :

POST /<domain>/messages.mime

Отправка сообщения в формате MIME. Примечание: вам нужно будет создать строку MIME самостоятельно. Используйте библиотеку MIME для вашего языка программирования, чтобы сделать это. Передайте полученную строку MIME в качестве параметра сообщения.

AFAICT Вы не строите строку MIME, поэтому не следует использовать эту конечную точку. Быстрый запуск показывает стандартную конечную точку для использования:

https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages

Примеры в документации показывают довольно четкий пример отправки сообщения HTML (это включает в себя файловые вложения, я их удалил):

send_complex_message():
    return requests.post(
        "https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages",
        auth=("api", "YOUR_API_KEY"),
        data={"from": "Excited User <YOU@YOUR_DOMAIN_NAME>",
              "to": "foo@example.com",
              "cc": "baz@example.com",
              "bcc": "bar@example.com",
              "subject": "Hello",
              "text": "Testing some Mailgun awesomness!",
              "html": "<html>HTML version of the body</html>"})

Ни один из приведенных примеров не включает использование заголовка Content-Type, похоже, что это не требуется.

TL; DR - если есть сомнения, проверьте документы! : -)

...