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

<>模板的起头定义了邮件的接收者、发送者和主题 。 在空行之后 , 是邮件的内容 。 该邮件需要从 database.csv 文件中获取接收者的 Email 、Name 和 Travel_Budget。 注意 , 上述这些占位符是由双大括弧( {{、}} )封闭的 。 相应的 mailmerge_database.csv 如下:
$ cat mailmerge_database.csvName,Email,Travel_BudgetBrian,bexelbie@redhat.com,1000PersonA,persona@fedoraproject.org,1500PèrsonB,personb@fedoraproject.org,500注意 , 我把自己的信息放在了首条 , 这是为了测试方便 。 除了我 , 还有另外两个人的信息在文档中 。 列表中的第二个人 PèrsonB , 他的名字中有一个包含变音符号的字母 , Mailmerge 会对这类字母自动编码 。
以上包含了模板的全部知识点:写上你自己的电子邮件信息 , 并编写好以双大括弧封闭的占位符 。 接下来创建用来提供前述占位符具体值的数据文件 。 现在测试一下电子邮件的效果 。
测试并发送简单邮件试运行
测试从邮件的试运行开始 , 试运行就是讲邮件内容显示出来 , 所有的占位符都会被具体值取代 。 默认情况下 , 如果你运行不带参数的命令 mailmerge , 它将对收件列表中的第一个人进行试运行:
$ mailmerge>>> encoding ascii>>> message 0TO: bexelbie@redhat.comSUBJECT: 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.从试运行生成的邮件中(列表中的 message 0, 和计算机中很多计数场景一样 , 计数从 0 开始) , 可以看到我的名字及旅行预算是正确的 。 如果你想检视所有的邮件 , 运行 mailmerge --no-limit , 告诉 Mailmerge 不要仅仅处理第一个收件人的信息 。 下面是第三个收件人邮件的试运行结果 , 用来测试特殊字符的编码:
>>> message 2TO: personb@fedoraproject.orgSUBJECT: 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: bexelbie@redhat.comSUBJECT: 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 = bexelbie@redhat.com>>>security = STARTTLS>>> password for bexelbie@redhat.com 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.