李看世界 發表於 2019-12-21 17:24:00

Node.js使用Nodemailer发送邮件

<p>除了Python,在node中收发电子邮件也非常简单,因为强大的社区有各种各样的包可以供我么直接使用。Nodemailer包就可以帮助我们快速实现发送邮件的功能。</p>
<h2 id="item-1">Nodemailer简介</h2>
<p>Nodemailer是一个简单易用的Node.js邮件发送组件</p>
<p>官网地址:https://nodemailer.com</p>
<p>GitHub地址:https://github.com/nodemailer/nodemailer</p>
<p>Nodemailer的主要特点包括:</p>
<ul>
<li>支持Unicode编码</li>
<li>支持Window系统环境</li>
<li>支持HTML内容和普通文本内容</li>
<li>支持附件(传送大附件)</li>
<li>支持HTML内容中嵌入图片</li>
<li>支持SSL/STARTTLS安全的邮件发送</li>
<li>支持内置的transport方法和其他插件实现的transport方法</li>
<li>支持自定义插件处理消息</li>
<li>支持XOAUTH2登录验证</li>
</ul>
<h2 id="item-2">安装使用</h2>
<p>首先,我们肯定是要下载安装&nbsp;<strong>注意:Node.js v6+</strong></p>
<div class="cnblogs_code">
<pre>npm <span style="color: rgba(0, 0, 255, 1)">install</span> nodemailer --save</pre>
</div>
<h2 id="item-3">发出个真实的邮件</h2>
<p>这里我使用了我的qq邮箱给另一个qq邮箱发送email。</p>
<div class="cnblogs_code">
<pre>'use strict'<span style="color: rgba(0, 0, 0, 1)">;

const nodemailer </span>= require('nodemailer'<span style="color: rgba(0, 0, 0, 1)">);

let transporter </span>=<span style="color: rgba(0, 0, 0, 1)"> nodemailer.createTransport({
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> host: 'smtp.ethereal.email',</span>
service: 'qq', <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 使用了内置传输发送邮件 查看支持列表:https://nodemailer.com/smtp/well-known/</span>
port: 465, <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> SMTP 端口</span>
secureConnection: <span style="color: rgba(0, 0, 255, 1)">true</span>, <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 使用了 SSL</span>
<span style="color: rgba(0, 0, 0, 1)">auth: {
    user: </span>'growvv@qq.com'<span style="color: rgba(0, 0, 0, 1)">,
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 这里密码不是qq密码,是你设置的smtp授权码,去qq邮箱后台开通、查看</span>
    pass: 'xxx'<span style="color: rgba(0, 0, 0, 1)">,
}
});

let mailOptions </span>=<span style="color: rgba(0, 0, 0, 1)"> {
from: </span>'"Rogn" &lt;growvv@qq.com&gt;', <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> sender address</span>
to: '3214739256@qq.com', <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> list of receivers</span>
subject: 'Hello', <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Subject line</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 发送text或者html格式</span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> text: 'Hello world?', // plain text body</span>
html: '&lt;h1&gt;Hello world&lt;/h1&gt;' <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> html body</span>
<span style="color: rgba(0, 0, 0, 1)">};

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> send mail with defined transport object</span>
transporter.sendMail(mailOptions, (error, info) =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (error) {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> console.log(error);
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> console.log('Message sent: %s', info.messageId);</span>
<span style="color: rgba(0, 0, 0, 1)">console.log(info)
});</span></pre>
</div>
<p>更多的配置像CC、BCC、attachments等可参见&nbsp;https://nodemailer.com/message/。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>参考链接:https://segmentfault.com/a/1190000012251328</p>


</div>
<div id="MySignature" role="contentinfo">
    个性签名:时间会解决一切<br><br>
来源:https://www.cnblogs.com/lfri/p/12077559.html
頁: [1]
查看完整版本: Node.js使用Nodemailer发送邮件