关键词:定制|生活|是一个|尤其是|邮件|方式的是|邮件|密码|那就|如果你|不行

应用Mailmerge推送定制邮件

应用 Mailmerge 推送定制邮件

Mailmerge 是一个能够 定制群发消息邮件的cmd程序流程,它能够 解决简易和繁杂的邮件。

电子器件邮件還是生活的一部分,虽然有诸多不够,它依然是大部分人发送短信的最好方式,尤其是在按序列将邮件发给收货人的自动化技术方式中。

做为 Fedora 小区行動和危害助理员,我工作之一便是给大家推送支助旅游有关的喜讯,我经常根据电子器件邮件做这种事。这儿,我将让你展现怎么使用 Mailmerge 向一群人推送定制邮件的,Mailmerge 是一个能够 解决简易和繁杂的邮件的cmd程序流程。

安裝 Mailmerge

在 Fedora 中,Mailmerge 早已装包能用,你能根据在cmd中运作 sudo dnf install python3-mailmerge 来安裝它。你要能够 应用 pip 指令从 PyPi 中安裝,实际能够 参考此项目地 README。

配备 Mailmerge

三个环境变量操纵着 Mailmerge 的工作模式。运作 mailmerge --sample,将转化成配备文件模板。这种文档包含:

mailmerge_server.conf: 这儿储存着 SMTP 服务器端邮件推送有关详尽配备,但你的登陆密码 不 在这儿储存。mailmerge_database.csv: 这儿储存每封邮件的定制数据信息,包含收货人的电子器件邮件详细地址。mailmerge_template.txt: 这儿储存电子器件邮件的文字,文字中包括占位符,这种占位符会应用 mailmerge_database.csv 中的数据信息更换。

Server.conf

配备模版文档 mailmerge_server.conf 包括好多个大伙儿应当很了解的事例。假如你以前往手机加上过电子器件邮件或是设定过桌面上电子器件邮件手机客户端,那你就应当见到过这种数据信息。必须提示的是要还记得将你的登录名升级到这一文档中,尤其是在你应用模版所出示的配备时。

Database.csv

mailmerge_database.csv 这一环境变量略微有点儿繁杂。起码要将邮件接受者的电子器件邮件详细地址储存在这儿,其他在电子器件邮件中一切必须更换的定制信息内容还要储存在这儿。强烈推荐在建立本文档的占位符目录时,同歩编写 mailmerge_template.txt 文档。我发现了一个合理的作法是,应用excel表手机软件入录这种数据信息,进行后导出来为 CSV 文档。应用下边的实例文档:

email,name,[email protected],"Myself",[email protected],"Bob",42

能够 你向这两人推送电子器件邮件,应用她们的姓名并告知她们一个数据。这一实例文档尽管并不是非常趣味,但运用了一个关键的标准,那便是:自始至终让自身处在邮件接受目录的第一位。那样你能在向目录全体人员推送邮件以前,先为自己推送一个检测邮件,以认证邮件的实际效果是不是假如你预估。

一切包括半角逗号的值,都 务必 以半角双引号封闭式。假如正好在半角双引号封闭式的地区必须有一个半角双引号,那么就在同一行中持续应用2个半角双引号。冒号的标准较为趣味,去 Python 3 中有关 CSV 的內容中 一探究竟吧。

Template.txt

我工作之一,便是为大家 Fedora 推动者大会 Flock 推送与旅游股票基金相关的信息内容。根据简易的邮件告知相关的人,他被选定为旅游股票基金适用的辛存者,及其相对股票基金适用的详细资料。与接受者有关的实际信息内容之一便是我们可以为他的旅游出示是多少支助。下边是一份我的节略后的模版文档:

$ cat mailmerge_template.txtTO: {{Email}}SUBJECT: Flock 2019 Funding OfferFROM: Brian Exelbierd Hi {{Name}},I am writing you on behalf of the Flock funding committee. You requested funding for your attendance at Flock. After careful consideration we are able to offer you the following funding:Travel Budget: {{Travel_Budget}}<>

模版的开始界定了邮件的接受者、发布者和主题风格。在空白行以后,是邮件的內容。该邮件必须从 database.csv 文档中获得接受者的 Email 、Name 和 Travel_Budget 。留意,所述这种占位符是由双大括弧封闭式的。相对的 mailmerge_database.csv 以下:

$ cat mailmerge_database.csvName,Email,Travel_BudgetBrian,[email protected],1000PersonA,[email protected],1500PèrsonB,[email protected],500

留意,我将自身的信息内容放到了第一条,它是以便检测便捷。除开我,也有此外两人的信息内容在文本文档中。目录中的第二个人 PèrsonB,他的名字中有一个包括变音标记的英文字母,Mailmerge 会对这种英文字母自动编号。

之上包括了模版的所有知识要点:写上你自己的电子器件邮件信息内容,并撰写好以双大括弧封闭式的占位符。接下去建立用于出示上述情况占位符实际值的数据库文件。如今测试一下电子器件邮件的实际效果。

检测并推送简易邮件

试运转

检测从邮件的试运转刚开始,试运转便是讲邮件內容显示信息出去,全部的占位符都是被实际值替代。默认设置状况下,假如你运作没有主要参数的指令 mailmerge,它将对揽收目录中的第一个人开展试运转:

$ mailmerge>>> encoding ascii>>> message 0TO: [email protected]: Flock 2019 Funding OfferFROM: Brian Exelbierd MIME-Version: 1.0Content-Type: text/plain; charset="us-ascii"Content-Transfer-Encoding: 7bitDate: Sat, 20 Jul 2019 18:17:15 -0000Hi Brian,I am writing you on behalf of the Flock funding committee. You requested funding for your attendance at Flock. After careful consideration we are able to offer you the following funding:Travel Budget: 1000<>>>> sent message 0 DRY RUN>>> No attachments were sent with the emails.>>> Limit was 1 messages. To remove the limit, use the --no-limit option.>>> This was a dry run. To send messages, use the --no-dry-run option.

从试运转转化成的邮件中,能够 见到自己的名字及旅游费用预算是恰当的。假如你要检查全部的邮件,运作 mailmerge --no-limit,告知 Mailmerge 不必只是解决第一个收货人的信息内容。下边是第三个收货人邮件的试运转結果,用于检测特殊符号的编号:

>>> message 2TO: [email protected]: Flock 2019 Funding OfferFROM: Brian Exelbierd MIME-Version: 1.0Content-Type: text/plain; charset="iso-8859-1"Content-Transfer-Encoding: quoted-printableDate: Sat, 20 Jul 2019 18:22:48 -0000Hi P=E8rsonB,

没有问题,P=E8rsonB 是 PèrsonB 的编号方式。

推送检测信息内容

如今,运作 mailmerge --no-dry-run,Mailmerge 将向收货人目录中的第一个人推送电子器件邮件:

$ mailmerge --no-dry-run>>> encoding ascii>>> message 0TO: [email protected]: Flock 2019 Funding OfferFROM: Brian Exelbierd MIME-Version: 1.0Content-Type: text/plain; charset="us-ascii"Content-Transfer-Encoding: 7bitDate: Sat, 20 Jul 2019 18:25:45 -0000Hi Brian,I am writing you on behalf of the Flock funding committee. You requested funding for your attendance at Flock. After careful consideration we are able to offer you the following funding:Travel Budget: 1000<>>>> Read SMTP server configuration from mailmerge_server.conf>>> host = smtp.gmail.com>>> port = 587>>> username = [email protected]>>> security = STARTTLS>>> password for [email protected] on smtp.gmail.com:>>> sent message 0>>> No attachments were sent with the emails.>>> Limit was 1 messages. To remove the limit, use the --no-limit option.

在倒数第 4 行,它将规定你键入你的密码。如果你应用的是双要素验证或是域操纵登陆,那就必须建立运用密码来绕开这种操纵。如果你应用的是 Gmail 或是相近的系统软件,能够 立即在页面上进行密码认证。假如不行得话,联络你的邮件计算机管理员。所述这种实际操作不容易危害邮件系统软件的安全系数,可是依然必须选用繁杂的安全系数好的密码。

我还在我的邮件收件箱中,看到了这封文件格式美观大方的检测邮件。假如检测邮件看上去没有问题,那就能够 运作 mailmerge --no-dry-run --no-limit 推送全部的邮件了。

推送繁杂邮件

仅有充足了解了 Jinja2 模版 ,你才很有可能充足领略到 Mailmerge 真实的杀伤力。在邮件模版中应用条件语句及附加配件,是很有效的。下边便是一个繁杂邮件的模版及相匹配的数据库文件:

$ cat mailmerge_template.txtTO: {{Email}}SUBJECT: Flock 2019 Funding OfferFROM: Brian Exelbierd ATTACHMENT: attachments/{{File}}Hi {{Name}},I am writing you on behalf of the Flock funding committee. You requested funding for your attendance at Flock. After careful consideration we are able to offer you the following funding:Travel Budget: {{Travel_Budget}}{% if Hotel == "Yes" -%}Lodging: Lodging in the hotel Wednesday-Sunday (4 nights){%- endif %}<>$ cat mailmerge_database.csvName,Email,Travel_Budget,Hotel,FileBrian,[email protected],1000,Yes,visa_bex.pdfPersonA,[email protected],1500,No,visa_person_a.pdfPèrsonB,[email protected],500,Yes,visa_person_b.pdf

在这个邮件中有二项新內容。最先是配件,我需要向报名参加国际性旅游的人推送签证办理邀请信,协助她们来 Flock,文件头的 ATTACHMENT 一部分表明了要包括哪些文档;以便维持我的文档文件目录清楚,我将全部必须做为配件的文本文档储存于配件根目录下。次之是包括了有关酒店的标准信息内容,由于有的人的旅游资产包括了住宿费用用,我需要对涉及到酒店住宿的工作人员诉及基本信息,而它是根据 if 分辨完成的:

{% if Hotel == "Yes" -%}Lodging: Lodging in the hotel Wednesday-Sunday (4 nights){%- endif %}

这和大部分计算机语言中的 if 分辨是一样的。Jinja2 整体实力不凡,能够 完成多级别分辨。根据包括数据信息原素操纵邮件內容,能大大简化有关的日常事务。空格符的恰当应用对邮件的可读性很重要。if 和 endif 句子中的股票短线是 Jinja2 操纵 空白字符 的一部分。这里边选择项许多,因此 還是要根据实验寻找最合适自身的方法。

在上面的事例中,我还在数据库文件扩大了 Hotel 和 File 2个字段名,这种字段名的值操纵着酒店信息内容和配件文件夹名称。此外,在上例中,我与 PèrsonB 有酒店住宿支助,但 PersonA 沒有。

针对简易邮件和繁杂邮件来讲,试运转及宣布推送邮件的实际操作全是同样的。快点试试吧!

你要能够 试着在邮件头中应用标准分辨,例如你能使发给在数据库查询中的别人的邮件包括配件,或是更改对一部分人更改推送人的信息内容。

Mailmerge 的优势

Mailmerge 是用于大批量推送订制邮件的简约而高效率的专用工具。每一个人只接纳到他必须的信息内容,其他附加的实际操作和关键点全是全透明的。

我都发觉,即便是在推送简易的集团公司邮件时,相对性于应用 CC 或是 BCC 向一组受众群体推送一封邮件,选用 Mailmerge 也是十分高效率的。很多人应用了邮件过虑,这些并不是立即发送给她们的邮件,她们一律不容易马上解决。应用 Mailmerge 确保了每名接受者接到的便是自身的邮件。全部的信息内容会对接受者开展恰当过虑,再也不能有些人不经意回应到全部邮件组。

猜你喜欢