亚云邮件2软件开发过程

    2010年的时候第一次接触到亚马逊云,感觉很神奇,后来把所在单位的业务服务器也搬到了亚马逊云上,这样开始了自己的云之旅。

    当时单位有一个需求,需要定期给自己的客户发送邮件,这样就接触到了亚马逊的SES邮件服务,当然从技术上来说,这没多大困难。主要的时间是费到了看SES的英文文档上了,了解它的工作机制。

    程序很快就开发出来了,是集成到自己公司的主业务程序上的一个模块,使用效果很好,难点是那些写文案的工作,和我就没太大关系了。

    亚云邮件软件 站:http://www.sendmaillist.com  

    亚云邮件1———————–

    过了几年,从那个单位出来,暂时也没有合适的工作,就动了心思把那个发邮件模块单独做成一个软件,于是就开始了亚云邮件第一版的工作。

    首先想到的是做成B/S还是C/S的结构,由于考虑到每个客户的发信量不同,占用的资源也不同,如果做成B/S的 页形式,相同的收费显然是不合理的。同时如果采用B/S模式,所有人都用服务器的IP去连接SES发信,很有可能被亚马逊封掉,这样B/S的架构就被否掉了。

    但是如果采用C/S的客户端服务器模式,很多客户没有自己的互联 服务器,并且从大陆访问亚马逊的美国 络,速度也极其不稳定。

    另外还有一个因素,就是如果没有自己的服务器,亚马逊发送中的错误邮件信息就没办法通知自己,比如空地址,比如用户投诉,比如一些软反弹。

    经过几昼夜的思考,最终决定把服务端建在亚马逊云自家的EC2服务器上,客户端在本地电脑,这样每次客户端把一批邮件地址发给服务端,然后由服务端一封一封的发送,同时,使用了亚马逊的SNS和SQS服务,用来接收发送中的错误邮件,然后亚云服务端通过SQS接收到服务端数据库中进行处理。这样就解决了客户没有服务器的问题。

   为了让客户操作方便,在客户端添加了自动创建EC2服务器的功能,实际软件出来,很多人认为效果不错。

   亚云邮件2————————

   亚云邮件2延续了版本1的C/S架构,这次不是必须把服务端放到亚马逊的EC2上了,而是可以放到任意服务器上,甚至是自己的本地电脑上。

   其中SparkPost和亚马逊SES很类似,只是有很多的免费量,同样也只是适合国外的邮件,国内的qq效果不好。

  搜狐SendCloud在国内效果都很好,包括qq邮箱,现在还是最主力的发送方式,同时亚云邮件2内部支持SendCloud的WebHook,这样就可以直接在亚云邮件里面看到邮件明细,还能看到客户邮件打开,点击链接,退订等统计数据,简直比亚马逊的SES还好用。

   亚云邮件2里面最重要的一个发信方式就是亚云mta了,这是最原始最直接的方式,因为这相当于自己建了个邮局系统,然后使用服务器的多个公 ip同时发邮件。里面支持添加SPF记录,DKIM记录,这样就完成了基本的常用设置,也支持IP地址反解析,效果更好。另外,还可以针对不同邮局设置自己单独的策略,来达到培养发信邮箱信用的功能。

  在开发过程中,SparkPost费的时间最多,因为它的机制相对比较复杂一些,看了好长时间文档。阿里云的业务接口本身很简单,但是它的Api调用的认证机制实在是太麻烦了,让我整整搞了一天才搞清楚流程。反而是SendCloud最简单,可能搜狐的开发人员也比较喜欢清爽类型的接口吧,调用SendCloud的Api接口只用了10分钟去测试。

   如果说最复杂的,那当然是开发亚云mta发信方式,单单考虑里面的任务机制就足足费了一个星期的时间,很难很难,当时考虑怎样设计最优,都头疼死了。

    后记——————

    亚云邮件2在2016年下半年就开发完成了,是开发完一个发信方式就放出一个版本,然后客户使用,有问题就反馈解决,整整折腾了半年的时间。现在回头看,还是对mta的复杂性心有余悸。

    在 亚云邮件群发软件 上已经倾注了太多心血,希望能做成一个精品,慢慢改进吧。

    写这篇文章,只是为了记录这个过程,留个脚印。

   

 

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成32828 人正在系统学习中 相关资源:WinAPI技巧:恶意软件使用或滥用的各种WINAPI技巧功能的集合-其它…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年2月16日
下一篇 2017年2月16日

相关推荐