使用MailGun从Node.JS发送HTML电子邮件

我从我的应用程序发送电子邮件通知给我的用户,但目前我只发送它作为一个文本。 我想发送它的风格的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>' }; 

编译上面的代码不起作用,它不喜欢我放入的样式。我已经在我的本地目录中创build了一个单独的HTML文件,用于发送每种types的电子邮件,我希望能够附加该HTML文件给我的电子邮件。

像这样的东西:

 var data = { from: 'my app', to: user.email, subject: 'Welcome', html: welcomeToSiteEmail.html }; 

以上是可能的吗? 任何帮助将不胜感激。

您可以使用mailgun-jsmailcomposer一起发送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>', password: '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. 

但是,我build议你的html电子邮件devise非常全面。 写HTML电子邮件是非常不同于networking中的HTML。 有一个更广泛的电子邮件客户端,将不同的呈现您的HTML的各种各样,一些,例如Outlook和Windows的Gmail,不会很好地对待你的HTML。 Litmus有关于devisehtml电子邮件的最佳实践的一些很好的资源。

我的build议是使用电子邮件的基础为您的样式,使用墨水来简化编写html电子邮件的语义,并内联css内联所有样式。 即使您使用发送邮件的其他方法,请查看这些资源进行devise。 他们会为你节省很多头痛。

类似于这个

首先,读取文件并将其作为HTML主体发送。

试试这个