星球狂想战队|使用 Mailmerge 发送定制邮件 | Linux 中国( 三 )

在倒数第 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,bexelbie@redhat.com,1000,Yes,visa_bex.pdfPersonA,persona@fedoraproject.org,1500,No,visa_person_a.pdfPèrsonB,personb@fedoraproject.org,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 两个字段 , 这些字段的值控制着宾馆信息和附件文件名 。 另外 , 在上例中 , 我和 PèrsonB 有住宿资助 , 但 PersonA 没有 。
对于简单邮件和复杂邮件而言 , 试运行及正式发送邮件的操作都是相同的 。 快去试试吧!
你还可以尝试在邮件头中使用条件判断( if … endif ) , 比如你可以使发送给在数据库中的某人的邮件包含附件 , 或者改变对部分人改变发送人的信息 。
Mailmerge 的优点Mailmerge 是用来批量发送定制邮件的简洁而高效的工具 。 每个人只接受到他需要的信息 , 其它额外的操作和细节都是透明的 。
我还发现 , 即使是在发送简单的集团邮件时 , 相对于使用 CC 或者 BCC 向一组受众发送一封邮件 , 采用 Mailmerge 也是非常高效的 。 很多人使用了邮件过滤 , 那些不是直接发给他们的邮件 , 他们一律不会立刻处理 。 使用 Mailmerge 保证了每名接收者收到的就是自己的邮件 。 所有的信息会对接收者进行正确过滤 , 再也不会有人无意间回复到整个邮件组 。
via: opensource.com