跳到主要内容

邮件

需要使用第三方模块,例如 Andris Reinman 的 Nodemailer 。

SMTP 、 MSA 、 MTA

  • SMTP 简单的邮件传输协议,但是可能会被放进垃圾邮件或是退回
  • MSA 会通过可信的渠道投递邮件,降低邮件被标记为邮件的可能性,还可以处理诸如临时故障造成的滋扰和回退的邮件
  • MTA 提供一个真正的送达的服务

接收邮件

暂无。可参考 Andris Reinman 的 SimpleSMTP

邮件头

邮件消息有两部分组成:头部和主体(跟 HTTP 请求一样)。头部包含:谁发的、发给谁、接收日期、主题。

邮件格式

建议是普通文本和 HTML 两种格式

html 邮件

使用 HTMl 编写邮件,可参考 MailChimp

Nodemailer

安装:

 npm i -s nodemailer

使用:

import nodemailer from "nodemailer;
var mailTransport = nodemailer.createTransport('SMTP', {
service: 'Gmail',
auth: {
user: credentials.gmail.user,
pass: credentials.gmail.password,
},
});

或者直接连接一个 SMTP 服务器:

import nodemailer from "nodemailer;
var mailTransport = nodemailer.createTransport('SMTP', {
host: 'smtp.lmssee.com',
secureConnection: true,
auth: {
user: credentials.meadowlarkSmtp.user,
pass: credentials.meadowlarkSmtp.password,
},
});

发送邮件

mailTransport.sendMail(
{
from: "'Meadowlark Travel' <info@meadowlarktravel.com>",
to: 'lmssee@qq.com',
subject: '哈哈哈',
text: '哈哈哈哈哈哈',
},
function (err) {
if (err) console.error(`Unable to send email: ${error}`);
},
);

邮件发送给多个接受者时,需要用逗号分隔开:

mailTransport.sendMail(
{
from: "'Meadowlark Travel' <info@meadowlarktravel.com>",
to: 'lmssee@qq.com,lmssee@outlook.com',
subject: '哈哈哈',
text: '哈哈哈哈哈哈',
},
function (err) {
if (err) console.error(`Unable to send email: ${error}`);
},
);

发送 HTMl 邮件

Nodemailer 允许在同一封邮件中发送 HTML 和普通文本两种版本,让邮件客户端选择显示哪一个版本:

mailTransport.sendMail(
{
from: "'Meadowlark Travel' <info@meadowlarktravel.com>",
to: 'lmssee@qq.com,lmssee@outlook.com',
subject: '哈哈哈',
html: `<h1>哈哈哈哈</h1><b>粗哈哈哈哈</b>`,
text: '哈哈哈哈哈哈',
},
function (err) {
if (err) console.error(`Unable to send email: ${error}`);
},
);

添加属性可以命令 Nodemailer 将自动转化为普通文本:

generateTextFormHtml : true

HTML 中的图片

不建议在 HTML 邮件中嵌入图片。