nodejs发送qq邮件

Node.js邮件发送教程

 

主要内容参考

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();
        }
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值