5

我正在尝试使用 Sendgrid 交易模板发送信息性电子邮件,例如帐户验证等,使用sendgrid 节点客户端。我创建了一个主要的事务模板,该模板应该有一个按钮,该按钮具有动态正文文本和一个按钮,该按钮具有每个邮件的动态 URL/href 属性。

我对按钮文本的替换有效,如果我用 URL 替换替换它,我也会在文本中看到 URL。但是,当我尝试将 url 附加到它消失的 href 属性时,它只是从我的锚标记中删除了 href 属性。这种情况无处不在,无论我是在可视化构建器中、在 HTML 片段中还是在我的邮件正文中设置按钮 url,都没有关系。手动设置 URL,无需替换,似乎可行。

我还尝试使用 %value% 作为替代,以及多个邮件客户端(gmail、outlook)但无济于事。请参阅下面的发送信息电子邮件的功能:

const sendInformationalEmail = async (to, subject, body, substitutions) => {
    const fromMail = new helper.Email(SENDGRID_FROM_MAIL);
    const toMail = new helper.Email(to);
    const content = new helper.Content('text/html', body);
    const mail = new helper.Mail(fromMail, subject, toMail, content);
    mail.setTemplateId(process.env.SENDGRID_INFORMATIONAL_TEMPLATE_ID);

    Object.keys(substitutions).map(substitution => {
        mail.personalizations[0].addSubstitution(
            new helper.Substitution(`-${substitution}-`, substitutions[substitution])
        );
    });

    const request = sendgrid.emptyRequest({
        method: 'POST',
        path: '/v3/mail/send',
        body: mail.toJSON()
    });

    return await sendgrid.API(request, function(err, response) {
      console.log(response.statusCode);
      console.log(response.body);
      console.log(response.headers);
    });
}
4

0 回答 0