HTML 邮件因意外的内容类型而被拒绝

HTML mail rejecting because of unexpected content type

我运行发送HTML邮件的小测试(三封邮件)。所有三个都拒绝了以下内容:

{\n  "message": "Invalid request content type. Expecting \'multipart/form-data\' but got \'application/x-www-form-urlencoded\' instead."\n}

我是新手,所以我确定我做错了什么,但我不知道要修复什么。这似乎与我关于内容的元标记有关。这是我用于测试消息的 HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Efani SIM Protect</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
 </head>
 <table align="left" border="1" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;">
  <tr>
   <td style="font-size: 0; line-height: 0;" height="10">
    This is a test of the email blaster's capabilities.
   </td>
  </tr>
  <tr>
   <td>
    <a href="https://efani.com/?ref=11&campaign=JohnCrockett">Hello world!  I am an anchor tag!</a>
   </td>
  </tr>
 </table>
</html>

这是我的代码的相关(我认为)部分:

    def send_message(sender, subject, body_text, body_html, recipient):
    return requests.post(
        "https://api.mailgun.net/v3/mg001.simdefense.com/messages.mime",
        auth=("api", "MY_API_KEY"),
        data={"from": sender,
              "to": recipient,
              "subject": subject,
              "text": body_text,
              "html": body_html})

如果有人能指出正确的方向,我将不胜感激。

在您的 header 中,确保指定 multipart/form-data 编码。根据 mailgun 的 api 文档:"You must use multipart/form-data encoding"。尝试一下,让我们知道它是否有效! :) 祝你好运!