最近官网需要做一个联系我们页面,需求:用户在官网填写自己的信息,联系方式,附件,然后自动发送到公司邮箱。
于是就想起来拿node试一下,使用[nodemailer]https://nodemailer.com模块实现。
var nodemailer = require('nodemailer')
var smtpTransport = require('nodemailer-smtp-transport');
smtpTransport = nodemailer.createTransport(smtpTransport({
service: "QQ",
auth: {
user: "邮箱名",
pass: "授权码"
}
}));
/**
* @param {String} recipient 收件人
* @param {String} subject 发送的主题
* @param {String} html 发送的html内容
*/
var sendMail = function (recipient, subject, html) {
smtpTransport.sendMail({
from: config.email.user, //发送方
to: recipient, //接收方
subject: subject, //内容
html: html,
attachments: [{
filename: 'content',
content: '发送内容'
},{
filename: 'index.html',
path: './public/index.html'
}]
}, function (error, response) {
if (error) {
console.log(error);
return
}
console.log('发送成功')
});
}
module.exports = sendMail;
[授权码]https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28
attachments附件属性:
-filename - 要报告为附加文件名称的文件名。允许使用unicode。
-content - 附件的字符串,缓冲区或流内容
-path - 如果要流式传输文件而不是包含文件,则为文件的路径(对于较大的附件更好)
-href - 文件的URL(也允许数据uris)
-contentType - 附件的可选内容类型,如果未设置,将从filename属性派生
-contentDisposition - 附件的可选内容处置类型,默认为“附件”
-cid - 在HTML消息源中使用内嵌图像的可选内容ID
-encoding - 如果set和content是string,则使用指定的编码将内容编码为Buffer。示例值:'base64','hex','binary'等。如果要在JSON格式的电子邮件对象中使用二进制附件,则非常有用。
-headers - 附件节点的自定义标头。与邮件头相同的用法
-raw - 是一个可选的特殊值,它覆盖当前mime节点的整个内容,包括mime头。如果您想自己准备节点内容,这很有用
网友评论