邮件发送

“leanpro.mail”中的Mailer类提供了邮件发送的功能。

Mailer类有如下的定义

  1. class Mailer {
  2. /* 获得Mailer类的实例 */
  3. public static getMailer(mailConfig: MailServerConfig): Mailer;
  4. /* 发送邮件 */
  5. public sendMail(message: MailMessage): Promise<void>;
  6. }

其中:

getMailer

  1. public static getMailer(mailConfig: MailServerConfig): Mailer;

静态方法,传入邮件服务器的配置参数(MailServerConfig),返回Mailer的实例。这个实例可用来执行后继的邮件发送操作。MailServerConfig有如下的定义:

  1. interface MailServerConfig {
  2. host: string, //mail server
  3. port?: number, //mail server port
  4. secure: boolean, //secure connection
  5. auth: {
  6. "user": string, //authenticate user
  7. "pass": string //password
  8. }
  9. }

当不传port参数时,使用默认的端口25,当不传port参数,且secure=true时,使用默认端口465。

sendMail

  1. public sendMail(message: MailMessage): Promise<void>;

传入邮件相关参数,发送邮件。 其中MailMessage应有如下的定义:

  1. interface MailMessage {
  2. from: string, // sender address
  3. to: string, // list of receivers
  4. subject: string, // Subject line
  5. text: string, // plain text body
  6. html: string // html body
  7. }

text是文本格式的内容,html是格式为html的数据

样例

下面是发送邮件的样例:

  1. const { Mailer } = require('leanpro.mail');
  2. let mailer = Mailer.getMailer({
  3. "host": "smtp.domain.com",
  4. "port": 465,
  5. "secure": true,
  6. "auth": {
  7. "user": "noreply@domain.com",
  8. "pass": "<mypassword>"
  9. }
  10. });
  11. (async function () {
  12. let mailMessage = {
  13. "from": "noreply@domain.com",
  14. "to": "someone@domain.com",
  15. "subject": "test mail",
  16. "text": 'some test content',
  17. "html": '<p>some <span style="font-weight:bold">test</span> content</p>',
  18. };
  19. await mailer.sendMail(mailMessage);
  20. })();

使用需按实际的SMTP服务器信息修改上面的参数。