主要內容參考
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 = "[email protected]"; //發件人的郵箱地址
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();
}
}
}