首页 > 解决方案 > 在 Node 服务器的 Mailgun 模板中使用变量

问题描述

我正在尝试创建一个基本的快速路由来处理我的电子邮件模板,由于某种原因,我无法将变量名称传递给 mailgun。我在别处查找过,并尝试以各种可能的方式将变量输入到数据中,无论如何,当收到电子邮件时,变量是完全空白的。我应该以另一种方式在我的 api 请求中输入变量吗?

正在发送的快递数据:

const data = {
  from: "Me <email@gmail.com>",
  to: "myEmail@live.com",
  subject: "Hello",
  template: "thank_you_email",
  recipient_name: "My Name",
  "v:recipient_name": "My Name",
  "h:X-Mailgun-Variables": JSON.stringify({
    recipient_name: "My Name",
  }),
};

正如您在这段代码中看到的那样,我试图以三种不同的方式发送变量,尽管主题确实有效,但它似乎没有被发送。

这是带有此变量的 html 模板部分:

                                    <h3
                                      style="
                                        margin: 0;
                                        line-height: 24px;
                                        mso-line-height-rule: exactly;
                                        font-family: georgia, times,
                                          'times new roman', serif;
                                        font-size: 20px;
                                        font-style: normal;
                                        font-weight: normal;
                                        color: #24578e;
                                      "
                                    >
                                      Dear %recipient_name%,
                                    </h3>

我在这里缺少什么吗?谢谢。

标签: node.jsexpressmailgun

解决方案


所以,我在发布这个问题后很快就找到了答案,但我不会删除它,以防其他人有问题。在电子邮件模板中,您必须将变量作为

{{recipient_name}}

代替

%recipient_name%

这似乎是可行的;唯一的例外是添加取消订阅按钮时,您输入

%unsubscribe_url%

mailgun 会为你处理剩下的事情。


推荐阅读