使用 nodemailer 发送 AMP 邮件
Use nodemailer to send AMP email
我最近开始了解 AMP 电子邮件并发现它很有趣,并在 nodejs 中使用 nodemailer 包尝试了一个示例。
此程序包已包含一个选项 'amp' 以发送特定于 AMP 的电子邮件,但我无法使其正常工作。
AMP 版本的电子邮件非常简单,不包含任何 xhr 请求。
下面是我的代码,它向特定的电子邮件地址发送电子邮件。
let transporter = nodeMailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: "validuser@gsuiteBusinessdomain.com",
pass: "validpassword"
},
});
let mailOptions = {
from: 'sender@gsuiteBusinessdomain.com', // sender address
to: "enduser@gsuiteBusinessdomain.com", // list of receivers
subject: "test subject", // Subject line
text: " basic text body example ", // plain text body
html: '<b>basic html body example</b>', // html body
amp: `<!--
Below is the mininum valid AMP4EMAIL document. Just type away
here and the AMP Validator will re-check your document on the fly.
-->
<!doctype html>
<html ⚡4email>
<head>
<meta charset="utf-8">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<style amp4email-boilerplate>body{visibility:hidden}</style>
</head>
<body>
Hello, AMP4EMAIL world.
</body>
</html>`
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
}
console.log('Message %s sent: %s', info.messageId, info.response);
});
此外,我尝试在 C# 中使用 "MailKit" 包,但不确定如何在此处设置 AMP 版本。我在 message.body 部分下添加了我的 AMP 版本
MimeMessage class.
message.Body = new TextPart(TextFormat.RichText)
{
Text = @"<!-- ........
我确信我遗漏了一些非常小的东西,但无法弄清楚。
有人可以看看并指导我上面的代码出了什么问题吗?
AMP 不是 RichText,它是 HTML,带有一个特殊的 Content-Type,是 multipart/alternative
.
的一部分
我会推荐阅读 https://amp.dev/documentation/guides-and-tutorials/learn/amp-email-format
要在 MimeKit/MailKit 中发送 AMP,您可以这样做:
var alternative = new MultipartAlternative ();
alternative.Add (new TextPart ("plain") {
Text = "This is the plain-text message body."
});
// Note: Some email clients[1] will only render the last MIME part, so we
// recommend placing the text/x-amp-html MIME part before the text/html
// MIME part.
alternative.Add (new TextPart ("x-amp-html") {
Text = @"<!--
Below is the minimum valid AMP4EMAIL document. Just type away
here and the AMP Validator will re-check your document on the fly.
-->
<!doctype html>
<html ⚡4email>
<head>
<meta charset=""utf-8"">
<script async src=""https://cdn.ampproject.org/v0.js""></script>
<style amp4email-boilerplate>body{visibility:hidden}</style>
</head>
<body>
Hello, AMP4EMAIL world.
</body>
</html>"
});
alternative.Add (new TextPart ("html") {
Text = "This is the <b>html</b> message body."
});
message.Body = alternative;
希望对您有所帮助。
我最近开始了解 AMP 电子邮件并发现它很有趣,并在 nodejs 中使用 nodemailer 包尝试了一个示例。
此程序包已包含一个选项 'amp' 以发送特定于 AMP 的电子邮件,但我无法使其正常工作。
AMP 版本的电子邮件非常简单,不包含任何 xhr 请求。 下面是我的代码,它向特定的电子邮件地址发送电子邮件。
let transporter = nodeMailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: "validuser@gsuiteBusinessdomain.com",
pass: "validpassword"
},
});
let mailOptions = {
from: 'sender@gsuiteBusinessdomain.com', // sender address
to: "enduser@gsuiteBusinessdomain.com", // list of receivers
subject: "test subject", // Subject line
text: " basic text body example ", // plain text body
html: '<b>basic html body example</b>', // html body
amp: `<!--
Below is the mininum valid AMP4EMAIL document. Just type away
here and the AMP Validator will re-check your document on the fly.
-->
<!doctype html>
<html ⚡4email>
<head>
<meta charset="utf-8">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<style amp4email-boilerplate>body{visibility:hidden}</style>
</head>
<body>
Hello, AMP4EMAIL world.
</body>
</html>`
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
}
console.log('Message %s sent: %s', info.messageId, info.response);
});
此外,我尝试在 C# 中使用 "MailKit" 包,但不确定如何在此处设置 AMP 版本。我在 message.body 部分下添加了我的 AMP 版本 MimeMessage class.
message.Body = new TextPart(TextFormat.RichText)
{
Text = @"<!-- ........
我确信我遗漏了一些非常小的东西,但无法弄清楚。 有人可以看看并指导我上面的代码出了什么问题吗?
AMP 不是 RichText,它是 HTML,带有一个特殊的 Content-Type,是 multipart/alternative
.
我会推荐阅读 https://amp.dev/documentation/guides-and-tutorials/learn/amp-email-format
要在 MimeKit/MailKit 中发送 AMP,您可以这样做:
var alternative = new MultipartAlternative ();
alternative.Add (new TextPart ("plain") {
Text = "This is the plain-text message body."
});
// Note: Some email clients[1] will only render the last MIME part, so we
// recommend placing the text/x-amp-html MIME part before the text/html
// MIME part.
alternative.Add (new TextPart ("x-amp-html") {
Text = @"<!--
Below is the minimum valid AMP4EMAIL document. Just type away
here and the AMP Validator will re-check your document on the fly.
-->
<!doctype html>
<html ⚡4email>
<head>
<meta charset=""utf-8"">
<script async src=""https://cdn.ampproject.org/v0.js""></script>
<style amp4email-boilerplate>body{visibility:hidden}</style>
</head>
<body>
Hello, AMP4EMAIL world.
</body>
</html>"
});
alternative.Add (new TextPart ("html") {
Text = "This is the <b>html</b> message body."
});
message.Body = alternative;
希望对您有所帮助。