前言

这段时间有一个群发邮件的需求,要求必须是针对不同的顾客邮箱地址发送不同的图片。图片第一要嵌到邮件正文中,第二不得以附件的形式发送,于是就想到了发送HTML源码格式的邮件。

因为本来就是个小软件,本着快速开发能赶快用上的原则,于是选择了简单的易语言作为开发工具,如果图片可以是以附件形式发送倒也简单,直接调用易语言自带的发送邮件即可,但若是HTML格式,查了查网上实现的还真不多,大多是用一些插件如Jmail,但是这个插件很久没更新已经失效,于是就用一下午的时间制作了一个软件,测试了下,可以达到预期效果。因CSDN暂不支持易语言的格式,因此在这里源码以图片形式放上用作说明,文末最后会放上易语言的源码.e文件,可直接下载打开查看源码。

1.软件需求

本地有txt文档,存储着顾客的姓名邮件地址,对应的SKU商品名,中间以分隔符"---"分割,如下举例所示:

顾客信息文本

要求:

对于的不同顾客,群发不同的内容(顾客名+内容模版),正文中需要内嵌顾客信息对于的SKU图片,SKU商品名就是发送的不同图片的名字,图片保存在运行目录下“./图片”文件夹内。如下所示:

图片文件夹内图片

如第一个顾客:Xiao  Song,收件地址为:guke1@163.com,邮件正文为:

Xiao Song,

此处为统一的一堆巴拉巴拉邮件模版内容

<此处正文中插入小宋对应的SKU图为:SUPFNO4D1.jpg>

且点击不同的顾客可预览下SKU图,最后发送时能预览要发送的内容。

2.软件实现

2.1 导入顾客信息

导入顾客信息比较简单,直接一个超级列表框+通用对话框实现,不再赘述,源码如下图:

源码:超级列表框-导入顾客信息

其超级列表框设计如下:

界面:超级列表框-存放顾客信息

2.2 导入后对不同顾客SKU的预览

实现导入顾客信息后,我们需要:

点击列表框的左键—查看顾客对于的SKU图片,若无,则报错。

点击列表框的右键—实现对顾客信息整行的复制,方便提取。

其实现也比较简单,基本思路在列表框旁放置一个图片框,左键单机事件触发后,图片框图片加载,右键触发,则把整行文本复制到剪贴板即可,这里不再赘述,易语言源码如下图:

源码:超级列表框-左键和右键事件的触发

2.3 核心—HTML邮件发送类的实现

易语言对于发送邮件在精易模块中是有现成的,但是只能以添加附件的形式发送,因此,直接调用精易模块中的邮件发送是不行了,思来想去决定自己写一个易语言的HTML类模块,再调用此即可。

当然,发送的话需要开通POP3/SMTP服务,需要知道发送方(你用的邮箱)的服务器地址,相应的网上都能查到,不再赘述,在这里我用的163邮箱,需要注意的是163邮箱开通SMTP服务时给了一串字母形式的授权码当作密码,而不是你的邮箱密码。

163邮箱服务器地址和端口

在这里主要说下HTML形式的邮件发送是怎么实现的,其余都比较简单。

其主要思路是:创建一个“邮件发送类”,其主要包括“发送邮件”、“连接发信服务器”、“取回状态码”等方法。然后我们发送时调用此类即可,易语言代码比较简单,一看就懂,下面放上具体代码,如下:

邮件发送类

2.4 正文中图片的处理

由于需要发送的图片是在本地文件夹中,因此,我们如果想要发送到对方邮件,直接添加本地照片的路径是行不通的,因为发送出去时服务器可没有本地的这个路径,在这里有思考了两个思路来解决这个问题:

1.将本地图片转化为网络图片,直接添加<img src="网络图片路径.jpg" />即可显示。

2.将本地图片以Base64加密,Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。它主要的用途是把一些二进制数转成普通字符用于网络传输。最常见的用途是作为电子邮件或WebService附件的传输编码。

因为图片也不是很大,因此最后采用第二种Base64的方式。这种方法可以将任何文件嵌入到你的网页中,如HTM/HTML,主要代码:“data:image/” + 图片格式 + “;base64,编码数据”

2.5 邮件正文和正文的预览

处理好了图片,我们便可设置一个编辑框,存放正文内容,由于正文前面名字不同,嵌入图片不同,因此,正文的内容为:

“嗨” + 顾客姓名 + 模版话 + 顾客对应的图片

要注意这里是HTML格式书写的正文,正文如果不变,其部分可以放到常量里,下面是例子:

<div><title></title><meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /><link rel="stylesheet" href="/stylesheets/style.css" /><div style="width:100%; margin: 40px auto;font-size:20px; color:#5f5e5e;text-align:center"><span>嗨,顾客姓名,这是一封邮件模版!</span></div><div style="width:100%; margin: 0 auto;color:#5f5e5e;text-align:center"><span style="display:block;margin-top:15px;color:#676767;font-size:15px">感谢你花时间看这个邮件哦我们最新推出了一款产品,产品描述·····</span><div style="text-align:center;margin:35px 0;"><span style="display:block;margin-top:55px;color:#676767;font-size:15px">————————————————这里是放图片分割线——————————————</span></div><img src="图标Base64编码数据" alt="test">

发送之前我们需要预览下邮件正文对不对,思路很简单,只需要把正文内容放在一个编辑框内容里,设置为隐藏,再设置一个超文本浏览框,每次发送前把编辑框内容写出到本地文件“预览.html”,每次发送前超文本浏览框载入此html,待我们确认无误后删除此html即可,如此循环。

2.6 实现的效果和完整代码

2020.07.30经过测试是达到了预期的效果,不然手动发几个还好,如果是几百个客户那简直太累了....

在这里我们以两个邮箱小号为收件人,看看是否能收到:

帐号1:zhiyange1968@126.com
                                            帐号2:ranlannie106ao@126.com

2020.07.30-软件效果图

登录小号,查看收到的邮件,和我们预想的一样:

收到的邮件内容

源码截图如下:

主程序代码截图

类模块源码

源码和成品exe(内置已打包模块)下载链接:

链接:https://wwa.lanzous.com/b0d2bop4f
       密码:1dc0

实现HTML格式电子邮件群发相关推荐

  1. html邮件模板编辑器_免费电子邮件群发工具推荐「aweber」

    推荐一款免费30天使用的电子邮件群发工具「aweber」,并且它不单单只是一个邮件群发工具,它有非常多的实用功能,以下我会做一些简单介绍. 一:自动化营销渠道 使用aweber的拖放广告系列编辑器构建 ...

  2. 电子邮件群发成就千里马和伯乐“良缘”

    眼下,一年一度的"跳槽.挖角"大戏正如火如荼进行,许多人才网站各出奇招,为提升品牌知名度鏖战.最近红帽云邮邮件群发平台在"求职黄金季"大量群发邮件,被会员称为& ...

  3. 用python群发邮件_使用Python实现电子邮件群发功能

    原标题:使用Python实现电子邮件群发功能 在某些应用中,可能会需要由管理员给所有用法群发电子邮件,或者类似的应用.本文代码使用Python详细模拟了这个过程. importemail fromem ...

  4. 使用Python实现电子邮件群发功能

    在某些应用中,可能会需要由管理员给所有用法群发电子邮件,或者类似的应用.本文代码使用Python详细模拟了这个过程. import email from email.mime.multipart im ...

  5. EmlBuilder:一款超轻量级的EML格式电子邮件阅读和编辑工具

    EmlBuilder 是一款超轻量级的电子邮件阅读和编辑工具,针对EML格式的文件具有非常强大的解析和容错能力,可实现超文本邮件的编写,并具备内嵌图片的编辑功能.该工具内部使用EmlParse对电子邮 ...

  6. 电子邮件大全,电子邮件群发软件有什么品牌?

    电子邮件已经做了30多年了,随着持续的发展,已成为很多网民生活及工作的组成部分,除了我们熟知的免费邮箱.VIP邮箱.企业邮箱,邮件营销也是很多外贸及电商等企业重要拓客方式.根据Focussend发布的 ...

  7. python自动发邮件富文本_使用outlook2003发送富文本格式电子邮件

    我正在尝试使用Outlook 2003发送RTF格式的电子邮件. 下面的代码会将RTF HTML源代码转储到邮件正文中.在 我该怎么做才能解决这个问题,并使Outlook显示格式化数据而不是源HTML ...

  8. EmlParse:一款超轻量级的批量解析EML格式电子邮件的工具

    工具特点 1.绿色纯天然,无任何依赖库,文件大小不到150K: 2.可批量解析EML格式的电子邮件: 3.可提取EML文件中的正文和附件到指定目录: 4.可生成HTML格式的邮件列表清单,方便用户进行 ...

  9. 电子邮件群发软件,电子邮箱注册哪个好?

    手机微信是大家最通讯工具了,大家都说现在通话,谁还用手机,都用微信语音了好嘛?怎么用手机收发邮件呢?若有一款能在微信收发邮件的产品,走到哪里,随时收发,重要的邮件再不担心会错过了. TOM邮箱微信收发 ...

  10. 163电子邮件群发,做外贸用什么邮箱?企业邮箱怎么群发邮件?

    个人使用的电子邮箱分为普通邮箱和TOMVIP会员邮箱两类,功能上来说普通邮箱是为用户提供的体验版本,而会员邮箱就是在此基础之上进行了版本强化.以TOM邮箱为例,其会员邮箱单次发送邮件的数量最高可以达到 ...

最新文章

  1. php过滤敏感词实例代码
  2. php+nginx环境配置注意事项
  3. 导入第三方库报 unknown type name 'NSString' 错误
  4. make check 时出现:Error importing caffe
  5. C语言怎么合并两个有序链表
  6. 【站点部署】解析二级域名并部署站点
  7. MySQL 5.7安装
  8. Linux深入篇之一:配置Nginx Web服务器及多域名主机
  9. 关于-最佳的业务连续性容灾架构设计
  10. TortoiseSVN的安装和汉化包
  11. mysql报1205错误
  12. 快速摆脱在线扩容难的噩梦?
  13. 少即是多:视觉SLAM的点稀疏化(IROS 2022)
  14. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(3月12日-3月18日)
  15. C13:Unity3D制作智能家居设计软件——定制系统
  16. discuz 单点登录 ucenter
  17. 万能芯片NE555,你知道多少?
  18. autobank渗流分析计算教程_实例分析Autobank在小型水库土石坝渗流稳定计算中的运用...
  19. 线性数据结构的实现与应用_双端队列_逆波兰式_呼叫中心_XAUAT_(原问题自杜克大学Duke University cps110 C++ Stacks and Queues and Lists)
  20. golang打包加icon图标及其他程序信息

热门文章

  1. 电动自行车16 CFR 1512标准要求及流程
  2. BeyondCompare的三种破解方法
  3. 安卓开发——做一个能定时唤起其他APP的闹钟程序
  4. java定义苹果类Apple_Java开发笔记(七十)Java8新增的几种泛型接口
  5. itunes更新失败卸载失败(AppleMobileDeviceSupport6464安装时回滚的解决办法)
  6. 黑龙江测绘局事业单位2009拟聘人员公示
  7. 结构体的定义以及使用
  8. ubuntu18安装N卡驱动
  9. 【有始有终,不让自己的付出辜负了自己期望 】
  10. 【弄nèng - Activiti6】Activiti6入门篇(十七)—— 消息中间事件