邮件发送
"leanpro.mail"中的Mailer类提供了邮件发送的功能。它支持SMTP、POP3、IMAP、SES、Mailgun、SendGrid等协议和服务。它还提供了一些高级功能,如HTML模板、附件、嵌入式图片等。
Mailer类有如下的定义
JavaScript
class Mailer {
/* 获得Mailer类的实例 */
public static getMailer(mailConfig: MailServerConfig): Mailer;
/* 发送邮件 */
public sendMail(message: MailMessage): Promise<void>;
}
其中:
getMailer
JavaScript
public static getMailer(mailConfig: MailServerConfig): Mailer;
静态方法,传入邮件服务器的配置参数(MailServerConfig),返回Mailer的实例。这个实例可用来执行后继的邮件发送操作。MailServerConfig有如下的定义:
JavaScript
interface MailServerConfig {
host: string, //mail server
port?: number, //mail server port
secure: boolean, //secure connection
auth: {
"user": string, //authenticate user
"pass": string //password
}
}
当不传port参数时,使用默认的端口25,当不传port参数,且secure=true时,使用默认端口465。
sendMail
JavaScript
public sendMail(message: MailMessage): Promise<void>;
传入邮件相关参数,发送邮件。 其中MailMessage应有如下的定义:
JavaScript
interface MailMessage {
from: string, // sender address
to: string, // list of receivers
subject: string, // Subject line
text: string, // plain text body
html: string, // html body
attachments: Attachment[] // an array of attachment objects.
}
如何使用
下面介绍如何使用Mailer来发送电子邮件: 你需要创建一个Mailer对象,并配置好传输方式和认证信息。例如,如果你想使用SMTP协议来发送邮件,你可以这样做:
JavaScript
const { Mailer } = require('leanpro.mail');
let mailer = Mailer.getMailer({
"host": "smtp.domain.com",
"port": 465,
"secure": true,
"auth": {
"user": "noreply@domain.com",
"pass": "<mypassword>"
}
});
JavaScript
(async function () {
let mailMessage = {
"from": "noreply@domain.com",
"to": "someone@domain.com",
"subject": "test mail",
"text": 'some test content',
"html": '<p>some <span style="font-weight:bold">test</span> content</p>',
"attachments":[
{
filename: 'image.jpg', // file name
path: './image.jpg' // file path
}
]
};
await mailer.sendMail(mailMessage);
})();