Mandrill合并变量不起作用

时间:2015-07-24 14:02:34

标签: mandrill

我正在使用以下Python代码发送Mandrill电子邮件:

    json_mandrill = dict(
        key=MANDRILL_KEY,
        template_name=template_name,
        template_content=[],
        global_merge_vars=[],
        message=dict(to=[dict(email=recipient)])
    )
    for name, content in merge_vars.items():
        json_mandrill["global_merge_vars"].append(
            dict(name=name, content=content))
    url = "https://mandrillapp.com/api/1.0/messages/send-template.json"
    logging.info(json.dumps(json_mandrill))
    result = urlfetch.fetch(url=url,
        payload=json.dumps(json_mandrill),
        method=urlfetch.POST,
        headers={'Content-Type': 'application/x-www-form-urlencoded'})

以下是我的日志中提交的JSON的示例:

{"global_merge_vars": [{"content": 7, "name": "free_duration"}, {"content": 4615291308867584, "name": "eid"}, {"content": "poll", "name": "mode"}, {"content": "31 July 2015 at 09:44 EDT", "name": "exp"}, {"content": "Jeff", "name": "name"}], 
"template_content": [], 
"message": {"to": [{"email": REDACTED}]}, 
"key": REDACTED, 
"template_name": "manager-welcome"}

我的Mandrill设置被设置为使用Handlebars,这里是模板的摘录:

<p>Dear {{name}},</p>

这就是收到的电子邮件中显示的内容:

<p>Dear ,</p>

电子邮件会被发送,但电子邮件中的合并变量只是空白。知道我做错了吗?

1 个答案:

答案 0 :(得分:2)

查看提交的JSON,它看起来像&#34; global_merge_vars&#34;没有正确嵌套。它们应该嵌套在&#34;消息中#34;结构,而不是在同一水平。