codecamp

邮件配置

Nodemailer 是一个简单易用的 Node.JS 邮件发送模块(通过 SMTP,sendmail,或者 Amazon SES),支持 unicode,你可以使用任何你喜欢的字符集。

安装nodemailer模块

npm install nodemailer@0.7.1 --save

注意1:nodejs默认安装最新的nodemailer版本,如果版本和nodejs版本不匹配则会提示你下降版本,本例的适配版本是0.7.1

邮件账号配置

在src/common/config/下新建mail.js,配置代码如下:

export default {
  //发送邮件配置
  host:"smtp.qq.com",
  port: 465,
  domains:'["qq.com"]',
  account:'262248861@qq.com',
  pass: "XXXXXXXX",
  from:"262248861@qq.com",
  route_on: true,
  encoding: "utf-8"
};

注意2:QQ邮箱的密码不是你的登录密码,而是在设置/账户里开启SMTP后腾讯给出的一串第三方登录密码

新建mail控制器,在controller里配置:

var nodemailer  = require("nodemailer");
let mailer=think.config("mail");
var smtpTransport = nodemailer.createTransport("SMTP", {
    host: mailer.host,
    secureConnection: true,
    port: mailer.port,
    requiresAuth: true,
    domains: mailer.domains,
    auth: {
        user: mailer.account, // 账号
        pass: mailer.pass // 密码
    }
});
smtpTransport.sendMail({
    from: mailer.account,
      to: "390039626@qq.com,livisky@163.com", // 收件列表
 subject: 'Node.JS通过SMTP协议从QQ邮箱发送邮件',
    html: 'have a try!'
},function(err, res) {
    console.log(err, res);
});

刷新页面,即可完成邮件的发送。

在前台页面,controller方法里可以是一个连接,当前台点击此连接时(发送邮件),自动发送邮件

常见问题

1、Invalid login - 535 Authentication failed 此项为密码错误,详见注意2 2、454 Authentication failed, please open smtp flag first!' 请在QQ邮箱 -> 设置 -> 帐户 -> 开启服务:POP3/SMTP服务

开启csrf
nginx配置
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

快速入门

进阶应用

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }