You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python与Mailgun(HTTP方法)发定制邮件及模板变量不生效问题

解决方法

1. 修正HTML模板的变量写法

你之前的变量写法有误,Mailgun模板变量规则如下:

  • 接口请求中用v:变量名格式传参是正确的
  • 模板内调用变量不需要带v:前缀,直接用{{变量名}}包裹即可
  • 放在HTML属性(比如href、src)中的变量,需要在变量名前加%避免转义,格式为{{%变量名}}

修正后的模板代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>repl.it</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <h3>{{name}}</h3>
    <a href="{{%this_link}}"> link</a>
  </body>
</html>

2. 可选优化:用JSON格式传变量

如果变量较多,也可以改用X-Mailgun-Variables头传JSON格式的参数,写法更清晰,示例代码如下:

import requests
import json

def send_simple_message():
    return requests.post(
        "https://api.mailgun.net/v3/sandbox<...>.mailgun.org/messages",
        auth=("api", "API-KEY"),
        data={
            "from": "SENDER",
            "to": "RECEIVER",
            "subject": "test email ",
            "template": "TEST"
        },
        headers={
            "X-Mailgun-Variables": json.dumps({
                "name": "the user name ",
                "this_link": "https://google.com"
            })
        })

send_simple_message()

这种方式传的变量在模板里同样用{{变量名}}调用即可。

3. 验证检查项

  • 确认你在Mailgun后台创建的TEST模板已经发布激活,草稿状态的模板不会生效
  • 确认模板名称和请求中template参数的拼写完全一致,区分大小写

内容的提问来源于stack exchange,提问作者max.syntax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:09:00