每个星期天,我都会向10.000多名订阅者发送一份时事通讯,名为“周刊”。在这篇文章中,我将深入探讨这些邮件是如何传递给订阅者的。
要做的第一件事(也可以说是最重要的一件事)是收集所有要包含在时事通讯中的链接。
只需在浏览器中单击一下,它就会被标记为书签,以便稍后处理。我对我的书签相当自由。在这个阶段,我不需要阅读每一篇文章。如果它看起来很有趣,我会把它放在书签上--稍后会进行策展。
我经常收到对我发送的时事通讯的回复,那里的读者有一些跟进或与我写的观点不同的观点。这通常会有几个链接供我查看,而且很有可能反馈会出现在下一周的特刊上。
附注:如果你有一篇有趣的文章,请随时通过Twitter(我的DM是开放的)或通过电子邮件[email protected]发送给我。
我编写了一个小脚本,它与Pocket API对话,检索所有链接,并将其格式化为Markdown。它真的只对我有用,但如果你感兴趣,可以在Github上找到:mattiasgeniar/Generator.cronWeekly.com-v2。
请注意,这也不是最漂亮的代码-但对我来说已经足够好了。
结果是时事通讯内容的建议,以我可以使用的方式格式化。
这为我节省了大量准备时事通讯语法的时间,因为它都是用Markdown写的。口袋里也有每一篇文章的不错的摘要,我只需要稍微调整一下。
随着Pocket建议以Markdown格式提供,现在开始了最耗时的部分:写作。
虽然Pocket对项目的描述提出了很好的建议,但对于新闻或教程部分的项目却不太管用。
在这一点上,我还没有读完所有的链接(我做了很多书签,通常仅仅是基于标题),大约50%的链接在这一步中被扔掉了。
这是一个需要我2-3个小时的舞台。一半用来打字,另一半用来阅读文章。
这一步可能看起来有点倒退,但它适用于我的工作流程:一旦我有了可用的web版本,我将使用它为时事通讯的HTML和TXT视图生成一个不同的版本。
转换的输入是Hugo解析的Markdown文件。它看起来是这样的:
作者:mattiasdate:2020-04-26T06:50:00+01:00发布日期:2020-04-26T06:50:00+01:00url:/cronWeek/Issue-131/--大家好!👋欢迎来到Cron.Week Issue131.最后一期发布日期:2020-04-26T06:50:00+01:00url:/cronWeek/Issue-131/--大家好!欢迎来到Cron.Week Issue#131。
它生成TXT版本(-t标志)或HTML版本(-h标志),并在Mac上使用pbcopy将输出复制到我的剪贴板。
我花了相当多的时间来优化这两个视图,使其在任何电子邮件客户端上看起来都很好。上面的脚本生成此HTML输出:
因为读者是非常技术性的,所以有惊人数量的用户在Mutt(一个纯文本客户端)上阅读它。他们会收到这个版本:
我尝试了更多的ASCII艺术,但它在每个客户机上呈现的效果都不同(因为它使用您选择的字体),所以我完全放弃了它。干净而简单(&A&S)。
网络版在正确的时间自动发布,使用Hugo的PublishDate变量和服务器上的cronjob,每小时重新生成一次站点。
每小时的cronjob在小时前5分钟运行,因此时事通讯在几分钟后邮件发出之前准时生成。
发送时事通讯有两个重要组成部分:客户端和MTA。
我使用一个名为MailCoach的PHP工具,它允许我配置时事通讯,设置HTML和TXT正文,并将它们发送给所有订阅者。
为了收集新的电子邮件注册,我在这个(静态)网站上嵌入了MailCoach表单。每周存档页面上的表单的POST目标指向MailCoach,然后MailCoach存储电子邮件地址并验证双重选择加入。
网页版的MailCoach允许我查看之前的活动,监控列表的增长等。
我强烈支持无跟踪,所以这里没有显示打开率或点击率。MailCoach支持这一点,但我不想跟踪用户。😄。
我从Sendy转到了MailCoach,因为它允许我轻松地扩展它,这在更低的位置会更方便一些。
MailCoach,就像Sendy一样,可以使用Amazon SES,MailGun,Sendmail,…发送电子邮件。自从我最近因为重新启动时事通讯(这是我自己的错)而被亚马逊SES解雇后(这是我自己的错),我转而使用Mailgan。
它们的速度相当快,时事通讯在不到10分钟的时间内就会发送给大约10.000名订阅者。
我最近将Mailgan计划升级为每月80美元的增长计划,这让我有了更长的日志保留时间和固定的IP地址。
自从我现在为Mailgan买单以来,我一直在逐个切换我的所有项目,包括来自Gma的传出电子邮件