标签: sendgrid-templates

通过带有“&”的 sendgrid 发送模板电子邮件时出现警告

我正在 sendgrid api v3 的帮助下发送电子邮件,但收到警告/错误:

包含字符 '、" 或 & 的内容可能需要使用三个括号 {{{ content }}} 进行转义

在我的 api json 中,我添加了一个包含该&字符的链接:

{"dynamic_template_data": {"link":"...&..."}}

在我的模板中,我使用三个括号{{{ link }}}

一切都按预期进行 - 电子邮件,包括。链接已发送 - 但我总是收到警告/错误。

我错过了 json 中的某些内容吗?

sendgrid sendgrid-api-v3 sendgrid-templates

11
推荐指数
1
解决办法
4198
查看次数

有没有办法通过 SendGrid API 调用检索动态模板生成的 HTML 电子邮件正文?

我们有一个站点,我们的代理输入一些数据,然后该数据通过 SendGrid 动态模板发送到客户端。

电子邮件内容包含大量基于输入数据的计算,因此我们希望我们的代理能够在将其发送给客户之前先预览电子邮件并验证内容。

有没有办法使用 SendGrid API 使用 json 对象发送请求,而不是将电子邮件发送给客户端,而是接收生成的电子邮件正文,以便我们可以将其显示给代理并让他们先查看?

sendgrid sendgrid-api-v3 sendgrid-templates

11
推荐指数
1
解决办法
5066
查看次数

如何在 JavaScript 中将动态数据 (HTML) 插入 SendGrid 模板

我希望使用SendGrid模板发送电子邮件。我使用标准 v3 api 和简单的 axios 调用。

我希望使用模板发送电子邮件。邮件应包含许多行和列。我不知道创建模板时会有多少行/列。行/列数将取决于仅在撰写电子邮件时已知的数据。

在我的代码中我希望:

  1. 使用 HTML 或其他推荐的方法收集数据并组成任意数量的行/列。
  2. 使用模板撰写消息,并使用“个性化/动态_模板_数据”或任何其他推荐的方法将 (1) 中的 HTML 插入到模板中。
  3. 发送电子邮件。
  4. 我希望电子邮件将我的 HTML 行/列视为 HTML。

我的代码(不起作用 - HTML 被视为文本):

  //Coompose HTML
  let alertHtml = ''
  noteObjArray.forEach((nototObj)=>{
    ...
    alertHtml += (myDate !== '') ? `- ${someText} ${myDate } ` : ''
    ...
    alertHtml += '<br/>'
  })

  //Send mail using SendGrid  
  const mailSender = firebaseFunctionsConfig.sendgrid.sender
  const msg = {
    personalizations: [{
      to: [{email, name}],
      dynamic_template_data: {userName:name, amount, alertHtml}
    }],
    from: {email: mailSender.email, name: mailSender.name},
    reply_to: …
Run Code Online (Sandbox Code Playgroud)

javascript sendgrid-api-v3 sendgrid-templates

10
推荐指数
1
解决办法
1万
查看次数

Sendgrid:使用模板版本支持多种语言

我想利用 Sendgrid 模板版本来支持多语言支持。

根据 Sendgrid文档

一个模板一次只能有一个活动版本。如果您创建了一个包含不同 HTML 的新版本,您希望客户开始接收该版本,则需要将该版本设为“活动”。

因此,例如我有 2 个版本的模板:English(active)Russian。因此,如果我想用俄语版本发送电子邮件,我需要在发送电子邮件之前激活俄语模板版本。

但我担心的是:如果我需要同时发送俄文和英文版本的电子邮件怎么办?Sendgrind 能否为 2 个同时请求提供合适的版本?

email sendgrid sendgrid-api-v3 sendgrid-templates

8
推荐指数
2
解决办法
5061
查看次数

Sendgrid 事务邮件模板将 href 属性剥离为替换

我正在尝试使用 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 …
Run Code Online (Sandbox Code Playgroud)

javascript node.js sendgrid sendgrid-templates

6
推荐指数
0
解决办法
932
查看次数

dynamic_template_data 不适用于 sendgrid 和 azure 函数集成

尝试使用带有 azure 函数 sendgrid 集成 (javaScript) 的事务模板,我正在发送以下对象(已删除的电子邮件地址等):

const message = 
{  
   "personalizations":[  
      {  
         "to":[  
            {  
               "email":"[MY_EMAIL]",
               "name":"Rotem"
            }
         ],
         "dynamic_template_data":{  
            "rotem_test1":"wow"
         }
      }
   ],
   "from":{  
      "email":"[FROM_EMAIL]",
      "name":"name"
   },
   "reply_to":{  
      "email":"[REPLY_EMAIL]",
      "name":"name"
   },
   "template_id":"[CORRECT_TEMPLATE_ID]",
   "tracking_settings":{  
      "click_tracking":{  
         "enable":true
      }
   }
}
context.done(null,message);
Run Code Online (Sandbox Code Playgroud)

也尝试使用context.done(null,JSON.stringify(message))相同的结果:我从正确的模板中收到一封电子邮件,但没有任何替换。

https://api.sendgrid.com/v3/mail/send 使用邮递员使用API发送完全相同的对象时,一切正常。

很想在这里获得帮助,了解我在 azure 函数上做错了什么。

azure sendgrid azure-functions sendgrid-templates

6
推荐指数
1
解决办法
1436
查看次数

Sendgrid 主题中带有dynamic_template_variable_data 的变量不起作用

我正在尝试通过此库将动态变量插入主题行。

例如:“您好{{name}},欢迎来到{{store_name}}”

我的电子邮件发送没有问题,但主题将 {{name}} 和 {{store_name}} 呈现为...就是这样。没有插入变量。

代码示例:

             dynamic_template_data: {
                name: "John",
                store_name: "My store",
                subject: "Hello {{name}}, welcome to {{store_name}}!"
              }
Run Code Online (Sandbox Code Playgroud)

在我的 Sendgrid UI 模板中,主题值为:{{subject}} 我也尝试过:{{{subject}}} 但没有成功。

电子邮件已发送,主题行是...您好 {{name}},欢迎来到 {{store_name}}

当它应该是......你好约翰,欢迎来到我的商店!

node.js sendgrid sendgrid-templates

6
推荐指数
1
解决办法
6050
查看次数

如何允许动态 Sendgrid 事务模板的模板数据中包含 html?

也许我在这里没有看到显而易见的事情。我正在使用这个库来发送邮件。我还使用交易模板

一个快速的代码示例:

var msg = new SendGridMessage {From = new EmailAddress("my@email.com")};
var personlization = new Personalization {Tos = new List<EmailAddress> {new EmailAddress("some@email.com")}};
dynamic t = new System.Dynamic.ExpandoObject();
t.firstname = "John";
t.lastname = "Doe";
t.message = "a <br/> line <br/> break";
msg.TemplateId = "abcdefg";
personlization.TemplateData = t;
msg.Personalizations = new List<Personalization> {personlization};

var response = await client.SendEmail(msg);
Run Code Online (Sandbox Code Playgroud)

我可以了解如何使用htmlContentprop 手动添加内容、文本或 html,但在本例中我使用的是事务模板。

在上面的示例中,电子邮件通过 html 编码而不是创建换行符,并且我希望个性化为 html。另外,模板是html。

c# sendgrid sendgrid-api-v3 sendgrid-templates

6
推荐指数
1
解决办法
5724
查看次数

查看 sendgrid 动态模板的统计信息

我正在使用 sendgrid 发送事务性电子邮件(动态模板),但不知道如何查看已打开、已发送的电子邮件的统计信息。是否有一种 GUI 或 API 可以用来查看事务性电子邮件的统计信息?

sendgrid sendgrid-templates sendgrid-api-v2

5
推荐指数
1
解决办法
2191
查看次数

Sendgrid - 动态模板中的车把错误消息

我尝试设置一个 Sendgrid 动态模板,其中包含多个句柄,其中包括每个句柄的迭代器 整个电子邮件模板 html 可以在她找到

测试数据如下:

{
   "total":"1000",
   "items":[
      {
         "text":"Ebook 1",
         "qty":"1",
         "price":"3"
      },
      {
         "text":"Ebook 2",
         "qty":"2",
         "price":"3"
      },
      {
         "text":"ebook 3",
         "qty":"4",
         "price":"3"
      }
   ],
   "name":"John Doe",
   "address01":"Stargate 292",
   "city":"NY",
   "state":"NY",
   "zip":"4567",
   "orderId":"456",
   "expiry":"Nov 9 2021",
   "customerRef":"123"
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我在保存时不断收到此错误:

您的模板已成功保存,但我们检测到您的车把代码存在问题,需要引起注意。

我找不到任何其他错误消息可以准确地告诉我此错误发生的原因位置

我正在使用 {{#each}} 迭代,不能 100% 确定设置是否正确

{{#each items}}    
<table>
  <tr>
    <td>{{this.text}}</td>
  </tr>
  <tr>
    <td>{{this.qty}}</td>
  </tr>
  <tr>
    <td>{{this.price}}</td>
  </tr>
</table>
{{/each}}
Run Code Online (Sandbox Code Playgroud)

其他车把只是基本的车把等{{ name }}{{ city }}

有谁有此类错误的经验并知道如何修复它?

sendgrid sendgrid-templates

5
推荐指数
1
解决办法
8450
查看次数