electron 制作批量发送邮件小工具

electron 制作批量发送邮件小工具

月光魔力鸭

2020-10-11 23:10 阅读 1181 喜欢 0 批量发送邮件

最开始其实只是网站的一个小改版,导致的需要发送邮件的功能,本身功能不复杂,不做工具的话,几行代码应该就可以搞定的.. 不过后来想想,这个功能应该还是有一定的小需求的,就做成了工具。

每次打包每次坑,还是先说下这次碰到的两个问题,主要还是图标问题。

坑A

在正常debug模式下开发的时候都正常,左上角的LOGO正常显示,但是通过electron-builder打包后就不显示了无

我这边的主要原因是路径使用的相对路径,没有用绝对路径,如下:

path.join()一下就可以了

当然,在查找资料的时候,有很多同学都说图标ico有问题,这个我之前找的网站做的ico,应该问题不大。

坑B

打包后,安装的时候builder里面有一个installerSidebar 总是不显示,是在安装的时候左侧显示的图片,查了下发现是bmp格式的,大小为164*314 ,最后又处理了下就OK 了。


核心代码

接下来烟鬼正传,所有这里面其实没什么核心的东西,主要思路就是制作邮件模版,给定关键字,然后提供邮箱数据excel以及关键字替换内容,配置好邮箱设置,然后轮流发送即可。

模块使用nodemailer -- mailer.js ,提供发件人服务商 端口 邮件 授权密码,接收者,邮件标题,内容即可。

var nodemailer = require('nodemailer');

function sendMail (host,port,baseUser,basePass,userList,title,content){

    // create reusable transporter object using the default SMTP transport
    var transporter = nodemailer.createTransport({
        pool : true,
        host : host,
        port : port,
        secure : true,
        auth : {
            user : baseUser,
            pass : basePass
        }
    });

    // setup e-mail data with unicode symbols
    var mailOptions = {
        from: baseUser, // sender address
        to: userList, // list of receivers
        subject: title, // Subject line
        html: content // html body
    };
    return new Promise((resolve,reject)=>{
        transporter.sendMail(mailOptions, function(error, info){
            if(error){
                reject(error);
            }else{
                resolve(info);
            }
        });
    })
}
module.exports = sendMail;

剩下的就是页面编写,导入、校验的工作了,都是些增删改没啥含量的东西.. 当然,这个工具整体上就没啥技术含量,属于给自己做个工具玩的。

简单介绍下工具使用

当然,模版好看不好看就得看功力了,可以从word转成html,然后复制进去,替换关键词。


以上。 目前工具可以从 https://shop.licran.com 网站中找到... ヾ(o◕∀◕)ノヾ

转载请注明出处: https://chrunlee.cn/article/electron-send-mail-bat.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
一直有跑着puppeteer在做pdf的生成,可以今天突然发现一个问题:预览与打印生成的PDF不一致,猜测可能是边距导致的,应该是没设置好... 然后当我在本地尝试的时候也发现了这个问题..要么是字符,要么是版本
ffmpeg 采集摄像头进行推流,然后播放,实现直播。
小程序需要用到用户的手机号码,看了下API 以及相关的demo,基本都是服务端进行解密的,问题是需要的参数并没有用到secret,只需要 session_key / iv /encryptedData 即可,那完全可以在客户端进行处理啊。
最近一段时间想着做个资源网站,奈何没数据,准备从几个相关的站点上抓一些数据,数据量每个站点都在几千万左右,这里简单总结下最近一段时间在做的测试。
mysql主从复制简单模式,一主一从。
最近有个小功能需要一些基础数据,找了一下在小程序上有发现,暂时还没找到他的网站,想着把这些数据爬一些下来做为基础数据使用的。本来还想着直接反编译小程序的,没想到微信变更了加密方式,以前反编译的路子走不通了。
整理一些相关的信息,防止后续再找不到。
前一阵子做了个图床,可以粘贴上传,查看服务器上的文件... 但是自己的服务器总是有问题..空间还小,就怕哪天没钱续费了。同事昨天想要一个七牛的图床,在网上找了下,只找到了 qiniu upload files插件,自己使用了下,挺好用,但是没有复制粘贴