从 Node.JS使用 MailGun 发送 HTML 电子邮件
Sending HTML emails from Node.JS using MailGun
我从我的应用程序向用户发送电子邮件通知,但目前我只以文本形式发送。我想向它发送样式化的HTML电子邮件。
目前我尝试了这个:
var data = {
from: 'my app',
to: user.email,
subject: 'Welcome',
html: '<div style="width: 500px; height: 400px: background: #ebebeb; color: #ddd"><p>Hi + "user.firstName" + 'n ,this email is to inform you that has added their bio to the knowledge Base 'n</p></div>'
};
编译上面的代码不起作用,它不喜欢我输入的样式。我已经在本地目录中为我要发送的每种类型的电子邮件创建了一个单独的 HTML 文件,我希望能够将该 html 文件附加到我的电子邮件中。
像这样:
var data = {
from: 'my app',
to: user.email,
subject: 'Welcome',
html: welcomeToSiteEmail.html
};
以上可能吗?任何帮助将不胜感激。
您可以将
mailgun-js
与mailcomposer
一起使用来发送HTML格式的电子邮件。
mailgun-js 文档包括一个示例:
var domain = 'mydomain.mailgun.org';
var mailgun = require('mailgun-js')({ apiKey: "YOUR API KEY", domain: domain });
var mailcomposer = require('mailcomposer');
var mail = mailcomposer({
from: 'you@samples.mailgun.org',
to: 'mm@samples.mailgun.org',
subject: 'Test email subject',
body: 'Test email text',
html: '<b> Test email text </b>'
});
mail.build(function(mailBuildError, message) {
var dataToSend = {
to: 'mm@samples.mailgun.org',
message: message.toString('ascii')
};
mailgun.messages().sendMime(dataToSend, function (sendError, body) {
if (sendError) {
console.log(sendError);
return;
}
});
});
或者,你可以在npm上查看nodemailer。这是一个很棒的软件包:易于使用和广泛的文档。使用nodemailer,你可以做这样的事情
var nodemailer = require('nodemailer');
var transport = nodemailer.createTransport({
host: 'smtp.mailgun.org',
port: 587,
secure: false,
tls: { ciphers: 'SSLv3' },
auth: {
user: '<Mailgun SMTP login>',
pass: '<Mailgun SMTP password>'
}
});
transport.sendMail({
from: '<Mailgun SMTP login>',
to: ['bob@example.com', 'bill@foobarbaz.com', /*etc*/],
subject: 'Fancy Email',
text: 'still send some text to be on the safe side',
html: { path: 'path/to/email.html' }
}, callback)
// also returns a promise.
但是,我建议在设计html电子邮件时要非常彻底。编写 html 电子邮件与在 Web 中编写 html 非常不同。有各种各样的电子邮件客户端会以不同的方式呈现您的 html,有些,例如 Outlook for Windows 和 Gmail Web,不会很好地处理您的 html。Litmus有一些关于设计HTML电子邮件的最佳实践的好资源。
我的建议是使用电子邮件的基础作为样式,使用inky来简化编写html电子邮件的语义,并使用inline-css来内联所有样式。即使您使用其他方法来发送邮件,也可以查看这些资源来设计它。他们会为你省去很多头痛。
相关文章:
- 用PHP发送html表单和文件附件
- 在ajax中发送html+JS
- "未捕获的SyntaxError:意外的令牌ILLEGAL“;当我通过AJAX发送html时
- 从 Node.JS使用 MailGun 发送 HTML 电子邮件
- 简单的node.js服务器,它发送html+css作为响应
- Rails远程表单发送html而不是js
- 如何通过 Ajax 发送 HTML 和 Javascript
- 如何使用操作属性发送 html 表单数据而不重定向到另一个页面
- Rails Application 发送 HTML 响应而不是 JS
- 如何使用谷歌应用脚本和谷歌工作表数据逐行发送html电子邮件
- 使用Gmail API发送HTML电子邮件
- 流星如何在电子邮件中发送HTML正文
- 从servlet向js应用程序发送HTML会破坏Firefox中的数据
- 通过电子邮件发送HTML-格式问题
- 如何发送HTML<画布>数据到服务器
- 通过电子邮件发送HTML表单
- 首先向客户端发送html代码(在其他代码之前)
- 当服务器发送HTML而不是图像数据时,是否有可能捕获失败的IMG加载?
- 发送HTML Div作为电子邮件文件附件
- 用MVC表单Post发送HTML字符串