SendGrid:使用 SendGrid 时如何将嵌入表单放入 HTML 模板邮件

SendGrid: How to put embed form to a HTML template mail when using SendGrid

我正在构建一个可以通过 SendGrid 发送 HTML 模板邮件的应用程序。

现在,我想包含一个 Google 表单以嵌入到 HTML 模板邮件中,以发送带有嵌入式 Google 表单的电子邮件。

我的 HTML 模板是一个字符串,

基本上是这样的,

const emailHTML = `
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html data-editor-version="2" class="sg-campaigns" xmlns="http://www.w3.org/1999/xhtml">
         <head>
          .....
         </head>
         <body>
          ....
            <iframe src=“https://docs.google.com/forms/d/e/.../viewform?embedded=true” width=“640" height=“1493” frameborder=“0" marginheight=“0” marginwidth=“0">Link</iframe>

        </body>
      </html>
`

然后我会将这个 HTML 字符串作为 html 变量传递给 SendGrid API,

router.post('/send-email', (req, res) => {

    const { recipient, sender, topic, text, emailHTML } = req.body; 

    const msg = {
        to: recipient, 
        from: sender,
        subject: topic,
        text: text,
        html: emailHTML
    }

    sgMail.send(msg).then((msg) => { 
        res.json({ Message: msg })
    });
})

我测试了收到的电子邮件,但没有看到电子邮件中嵌入的 Google 表格。

如何将 Google 表单嵌入到 HTML 模板邮件中以通过 SendGrid 发送?

您不能使用 <iframe> 嵌入 Google 表单(或任何表单)。

有些电子邮件客户端根本不接受表单,或者即使呈现也功能有限,但 Google 表单具有可从其平台获得的嵌入功能。

本质上,在 Google 形式上:

  1. 制作表格
  2. 点击'send'
  3. 插入您自己的 Gmail 地址 - 这只是为了获取代码
  4. 在 'Send via' 下选择 'Email'
  5. 勾选'Include form in email'

有关完整说明,请参阅 https://www.maketecheasier.com/embed-google-forms-in-email/

现在,要获取用于插入 SendGrid 的实际代码,您必须从该电子邮件中获取表单的源代码,并将其粘贴到 SendGrid 电子邮件的 HTML 中。

本质上,

在 Gmail 中打开电子邮件 单击更多(右上角的下拉箭头)-> 显示原始 复制相关代码

有关完整说明,请参阅 https://gillandrews.com/embed-a-survey-in-email-newsletter-google-forms/

对于那些想直接在 Google 上而不是通过电子邮件填写表格的人,我还会在其中添加一个 link,因为有些电子邮件客户端不会工作。