繁体   English   中英

使用 Node.js 中的 AWS SES 在 email 正文中发送超链接

[英]Send hyperlinks in email body using AWS SES in Node.js

我在我的 Node.js Lambda ZC1C425268E68385D1ABZA47 中使用 AWS.SES(简单的 email 服务)套件。

我可以很好地发送电子邮件,但如果我尝试在 email 中包含一个简单的超链接,它只会显示纯文本而不是可点击的超链接。

这是我用来发送 email 的代码。

function sendVerificationEmail(userinfo, vKey, after) {
    var params = {
        Destination: {
            ToAddresses: [userinfo.email]
        },
        Message: {
            Body: {
                Html: {
                    Charset: "UTF-8",
                    Data: "<html><body>Hey " + userinfo.name + ", <a href='https://s3.amazonaws.com/xxxx/xxxx.html?v=" + vKey + "'>Click here to validate this email address.</a></body></html>"
                },
                Text: {
                    Charset: "UTF-8",
                    Data: "Hey " + userinfo.name + ",\n\nOpen this link in your web browser to validate this email address:\nhttps://s3.amazonaws.com/xxxx/xxxx.html?v=" + vKey
                }

            },

            Subject: { Data: "Scheduler - Verify Your Email Address" }
        },
        Source: "xxxx@gmail.com"
    };

     ses.sendEmail(params, function(err, data) {
        after(err, data);
    });
}

正如您在 HTML 中看到的,我包含了一个<a>标记。 但是,该链接在 email 中显示为不可点击的纯文本。

编辑:Gmail 的“显示原始”功能显示以下内容:

Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hey TestName,

Open this link in your web browser to validate this email address:
https://s3.amazonaws.com/xxxx/xxxx.html?v=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
---------------------------------------------------
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<html><body>Hey TestName, <a href='https://s3.amazonaws.com/xxxx/xxxx.html?v=xxxxxxxxxxxxx'>Click here to validate this email address.</a></body></html>

如果您观察原始 email 内容,您会发现它错过了href=<link>之间的=符号。 这是因为 '=' 符号在 smtp 协议消息中用作换行符(我认为)。 无论如何,解决这个问题的方法是为 U+003D 的“=”符号添加 unicode 试试这个:-

<a href=3D"${link}">${text}</a>

=3D被解释为=符号并且内容编码正确完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM