邮件发送

"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.
}
text是文本格式的内容,html是格式为html的数据

如何使用

下面介绍如何使用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>"
    }
});
接下来,你需要创建一个邮件对象,指定发件人、收件人、主题、正文等信息。你可以使用纯文本或HTML格式来编写正文,也可以添加附件或嵌入式图片。例如,如果你想发送一封带有图片的HTML邮件,最后调用mailer对象的sendMail方法,传入邮件对象,你可以这样做:
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);
})();
这就是使用Mailer库来发送电子邮件的基本步骤。当然,你还可以根据自己的需求和喜好来调整和优化代码。使用需按实际的SMTP服务器信息修改上面的参数。

results matching ""

    No results matching ""