吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3087|回复: 5
收起左侧

[其他转载] eggjs 利用qq邮箱发送邮件服务

[复制链接]
lixiuxiu 发表于 2021-11-17 14:38

经常忘事,做了个代办事项提醒,使用eggjs作为后台服务,nodejs利用QQ邮箱发邮件来进行消息接收。

1.在eggjs项目service下新建一个文件,使用npm安装 nodemailer;
  user_email是发送账号,auth_code是授权码;

'use strict';

const Service = require('egg').Service;

const nodemailer = require('nodemailer');
const user_email = 'xxx@qq.com';
const auth_code = 'xxxxx';

const transporter = nodemailer.createTransport({
    service: 'qq',
    secureConnection: true,
    port: 465,
    auth: {
        user: user_email, // 账号
        pass: auth_code, // 授权码

    },
});

class EmallService extends Service {

    async sendMail(email, subject, text, html) {

        const mailOptions = {
            from: user_email, // 发送者,与上面的user一致
            to: email,   // 接收者账号,可以同时发送多个,以逗号隔开
            subject,   // 标题
            text,   // 文本
            html,
        };

        try {
            await transporter.sendMail(mailOptions);
            return true;
        } catch (err) {
            return false;
        }
    }

}

module.exports = EmallService;


2.在Controller中引用就行
class emallController extends Controller {

    async emall() {
        const email = 'xxxx@qq.com';  // 接收者的邮箱
        const subject = 'xxx生日提醒';
    const text = '文本';
        const html = '<h2>测试一下::</h2><a class="elem-a" ><span class="content-elem-span">测试链接</span></a>';

     //在此处调用。适当的改一下service路径
         const has_send = await this.service[this.app.config.public].admin.emall.sendMail(email, subject, text, html);

         if (has_send) {
             await this.ctx.returnBody(has_send, 200, '发送成功');

             return;
         }
         await this.ctx.returnBody(has_send, 400, '发送失败');
    }
}

免费评分

参与人数 1热心值 +1 收起 理由
Lyq0703 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ysc4798 发表于 2021-11-17 16:44
本帖最后由 ysc4798 于 2021-11-17 16:47 编辑
孙云 发表于 2021-11-17 15:26
大佬搞个python的呗

[Python] 纯文本查看 复制代码

import yagmail

def email_send():
    yag = yagmail.SMTP(user='xxxxxxx', password='xxxxxxx', host='smtp.163.com', port=465)   #user:账号     password:授权码
    contents = 'xxxxxxx' #内容
    subject = 'xxxxxx' #主题
    try:
        yag.send(to=['xxxxxxxxx@xxxx','xxxxxxxx@xxxx'], subject=subject, contents=contents)   #可以同时发送给多人
        print('邮件已发送请查收...')
    except:
        print("邮件发送失败!!!")
email_send()

我自己写的一个python的,qq邮箱和163邮箱都能用

免费评分

参与人数 1热心值 +1 收起 理由
lixiuxiu + 1 热心回复!

查看全部评分

头像被屏蔽
孙云 发表于 2021-11-17 15:26
头像被屏蔽
孙云 发表于 2021-11-17 19:01
changshi 发表于 2022-3-20 20:26
我是小白,有没有已经编译好的,可以直接用?
 楼主| lixiuxiu 发表于 2022-3-21 10:24
changshi 发表于 2022-3-20 20:26
我是小白,有没有已经编译好的,可以直接用?

这个按说明直接拿去用,下载node,egg就行
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 08:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表