主要内容参考
https://blog.csdn.net/baidu_34036884/article/details/78983258
在博主的基础上添加回调函数,适用于前后端交互
config.js
module.exports = {
//邮件配置
email: {
service: 'QQ',
user: '你的qq号码',
pass: 'smtp码,不是qq密码',//要去qq邮箱开启
}
}
mail.js
var nodemailer = require('nodemailer')
var smtpTransport = require('nodemailer-smtp-transport');
var config = require('./config')
smtpTransport = nodemailer.createTransport(smtpTransport({
service: config.email.service,
auth: {
user: config.email.user,
pass: config.email.pass
}
}));
/**
* @param {String} recipient 收件人
* @param {String} subject 发送的主题
* @param {String} html 发送的html内容
*/
var sendMail = function (recipient, subject, html,callback) {
smtpTransport.sendMail({
from: config.email.user,
to: recipient,
subject: subject,
html: html
}, function (error, response) {
if (error) {
console.log(error);
}
callback("已提交申请")
});
}
module.exports = sendMail;
调用
var send=require('./mail')
send(req.query.cc,req.query.subject, req.query.body,(info)=>{
res.json(info)
})
顺便奉上收集的java发送邮件的代码
package com.example.demo.controller;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;
/**
* 发送QQ邮件
*
* @author YaoQi
* @date 2017年7月13日
*/
public class TestMail {
public void send(String toemail) {
String from = "873054267@qq.com"; //发件人的邮箱地址
String to = toemail; //收件人的邮箱地址
String subject = "java发送邮件"; //邮件主题
String body = "正文"; //邮件内容
//设置发送邮件的一些属性
Properties prop = new Properties();
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.host", "smtp.qq.com");
prop.setProperty("mail.smtp.port", "465");
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.debug", "true");
prop.setProperty("mail.smtp.ssl.enable", "true"); //qq邮箱必须设置这一项,ssl加密选项
Session session = Session.getDefaultInstance(prop, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//这里需要验证邮箱的授权码,QQ邮箱需要授权码
return new PasswordAuthentication(from, "授权码");
}
});
MimeMessage message = new MimeMessage(session);
try {
Transport transport = session.getTransport();
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSentDate(new Date());
message.setSubject(subject);
//如果仅仅是发送文本,使用setText()方法
message.setText(body);
//如果是发送html格式的邮件则需要使用setContent()方法,并且设置参数text/html; 这两个方法是等价的,后面执行的会覆盖前一个方法设置的内容
message.setContent("<h1>参考链接https://www.cnblogs.com/hello-daocaoren/p/7197500.html</h1>","text/html" );
message.saveChanges();
session.setDebug(true);
transport.connect(from, "授权码");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}