node.js 使用nodemailer发送qq邮件

实现nodemailer发送邮件给qq邮箱

安装环境

这里分享笔者的版本,各位可以根据需求更改

  • node – 10.15.3
  • express – 4.16.4
  • nodemailer --6.1.0

注意:笔者只使用了一个index.js文件,以下代码合并在一个页面后即可运行.可以根据个人需求分页开发

配置传送服务
let mailTransport = nodemailer.createTransport({
    // host: 'smtp.qq.email',
    service:'qq',
    secure: true,	//安全方式发送,建议都加上
    auth: {
        user: 'xxxxxxxx@qq.com',
        pass: '*************'
    }
})
  • 配置中的auth用于配置用于发送邮件的邮箱,这里使用的是qq邮箱
  • user即你的qq邮箱地址,xxxxxxxx表示qq号
  • 注意,这里的pass并不是你的qq密码,而是在qq邮箱中开启SMTP服务时提供的授权码,具体开启步骤如下

开启QQ邮箱SMTP
  • 登录QQ邮箱
  • 点击左上角设置
  • 选择账户栏往下翻
  • 有一个POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务栏,选择IMAP/SMTP服务开启选项,如图.记得记录给你的授权码,填入pass
    在这里插入图片描述
引入需要的模块并开启app
let nodemailer = require('nodemailer');
let express = require('express');
let app = express();

建立访问地址
app.get('/send',function(req,res) {
    let options = {
        from: ' "zhy" <xxxx@qq.com>',
        to: '<xxx@qq.com>',
        bcc: '密送',
        subject: 'node邮件',
        text: 'hello nodemailer',
        html: '<h1>hello zhy</h1>'
    };
    mailTransport.sendMail(options,function(err,msg) {
        if(err) {
            console.log(err);
            res.send(err);
        } else {
            res.send('success');
        }
    })
});
  • from表示发送方,也就是你的邮箱,zhy表示名称,选择性填写
  • to表示接收方,也就是想要发送给谁
  • subject是邮件标题
  • text是邮件内容,如果包含html会被覆盖
  • html以html后的内容显示在邮件正文
监听端口
app.listen(8000,function() {
    console.log('running...');
})
接下来就可以通过开启服务并访问localhost:8000/send来发送邮件了,可以到接收方邮箱中查看

在这里插入图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
使用 Node.js 实现点击按钮发送信息到 qq 邮箱,你需要使用 Node.js 的第三方邮件发送库。这nodemailer 为例进行说明。 首先,你需要在你的项目中安装 nodemailer: ``` npm install nodemailer ``` 然后,在你的 Express 应用中添加路由处理 `/sendemail`,处理前端发送过来的邮件发送请求。示例代码如下: ```javascript const express = require('express'); const bodyParser = require('body-parser'); const nodemailer = require('nodemailer'); const app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.post('/sendemail', (req, res) => { let transporter = nodemailer.createTransport({ service: 'qq', secure: true, auth: { user: '你的 QQ 邮箱地址', pass: '你的 QQ 邮箱密码' } }); let mailOptions = { from: '你的 QQ 邮箱地址', to: req.body.to, subject: req.body.subject, text: req.body.message }; transporter.sendMail(mailOptions, (error, info) => { if (error) { console.log(error); res.send('邮件发送失败'); } else { console.log('邮件发送成功:' + info.response); res.send('邮件发送成功'); } }); }); app.listen(3000, () => { console.log('服务器已启动'); }); ``` 这段代码使用 nodemailer 创建一个邮件传输对象 `transporter`,并设置服务提供商为 `qq`,使用 QQ 邮箱的 SMTP 服务器发送邮件。在创建 `mailOptions` 对象时,我们使用了表单数据中的收件人地址、主题和正文。最后,我们使用 `transporter.sendMail()` 方法发送邮件,并在邮件发送完成后向前端发送响应。 在前端页面中,你可以使用 jQuery 或其他类库监听按钮的点击事件,并使用 AJAX 技术将表单数据发送到 `/sendemail` 路由。示例代码如下: ```html <!DOCTYPE html> <html> <head> <title>发送邮件</title> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> </head> <body> <form> <label for="to">收件人:</label> <input type="email" id="to" name="to" required><br> <label for="subject">主题:</label> <input type="text" id="subject" name="subject" required><br> <label for="message">内容:</label> <textarea id="message" name="message" required></textarea><br> <button type="button" id="send">发送</button> </form> <script> $(function() { $('#send').click(function() { var to = $('#to').val(); var subject = $('#subject').val(); var message = $('#message').val(); $.post('/sendemail', {to: to, subject: subject, message: message}, function(response) { alert(response); }); }); }); </script> </body> </html> ``` 这使用了 jQuery 的 `$.post()` 方法将表单数据发送到 `/sendemail` 路径,然后在后端服务器上监听该路径。当邮件发送完成后,我们在前端弹出一个提示框,显示邮件发送结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值