发表主题 回复主题
  • 8825阅读
  • 14回复

[解决方案]使用阿里云邮件推送服务架设自己邮件验证与推送体系(一)

级别: 论坛版主
发帖
18
云币
350
— 本帖被 linanxiaoxiao 设置为精华(2016-07-22) —
引用
提示:阅读本文需提前了解的相关知识 dXgj  
1、电子邮件协议(http://baike.baidu.com/view/2367542.htm mZ sftby}  
2、阿里邮件推送(https://www.aliyun.com/product/directmail >$h*1/  
3、EDM(电子邮件营销)(http://baike.baidu.com/subview/1212416/8602812.htm B:dk>$>uQ  
4、SendCloud邮件服务http://sendcloud.sohu.com/
[80jG+6  
阅读目录结构 Fi.gf?d  
i8A{DMc,U  
引用
引: /7#KkMg  
一、需求分析 ](yw2c;m e  
二、功能设计 !\wdX7%  
三、详细实现步骤 7g1" s1~or  
四、总结与思考
~`M>&E@Y_/  
      
x]|8  
引: ZGrjb22M  
我们会发现,越来越多的互联网应用和企业级应用,开始使用邮件验证码验证替代邮件链接验证,例如下图: L|4kv  
a-\\A[E  
(u`[I4z`  
又例如: hXr`S4aJ  
Cw1Jl5OVZ  
当然,也有更多的应用使用了漂亮的HTML代码来装饰邮件,例如: wW s<{ T  
Z(LDAZG  
nHxos` Qx  
又例如: t]1j4S"pm  
MJ^NRT0?b  
$P#Cf&R  
引用
我想,一个优秀的互联网应用或者个体经营的站长站点,如果在注册、身份证验证、信息推送等功能上,加上如上效果的邮件服务,一定能带来更加优质的用户体验 6kH47Yc?  
JF7n|o-`?  
x9}D2Ui  
而邮件服务也不是现在才有,我们可以回顾一下发展历史 5HP6o  
很多站长应该都记得,在例如Discuz、WordPress等CMS中,都可以配置SMTP信息,开通了163等邮箱的SMTP功能就可以填入账号密码,从而达到发送邮件的功能。 9!sx  
很多企业在若干年前,也热衷于使用大型如ExchangeServer,中小型如UMail等软件搭建己的企业邮件服务系统。 4?YhqJ  
但是随着互联网的发展,伴随着QQ等邮件服务商的走红,传统的国外那一套邮件规则和秩序已经发生了改变,有时候就算你有很多IP,做了反向解析,在Spamhaus白名单,又或者虚拟了不同的helo域,QQ邮箱还是照拦不误,最终还是得单独花钱向国内外各大ESP购买独立通道 n]I_ LlbY  
在这种情况下,自建邮局系统或者邮件SMTP服务,就显得得不偿失了,所以一方面各大企业邮箱服务越做越好,得到企业的认可,另一方面,国内外如SendGrid,SendCloud等第三方邮件PUSH服务商也逐渐做大,他们用更专业的手段,去解决通道、白名单、信誉度等各种邮件服务问题,而客户只需要通过SMTP协议或者封装的API接口,就可以非常便捷的给用户发送邮件 p-n_ ">7  
就我所知,目前国内做的最好的当属搜狐的SendCloud,但是SendCloud发展了这么多年,也越来越复杂和专业,我认为更适合有大型EDM需求的应用使用,作为中小企业和创业者以及站长,首推依然是阿里云的邮件推送服务,一如既往秉持阿里云的特点:使用傻瓜,上手快速,文档俱全,但漏洞和问题多多不过作为AWS的追赶者,能在短时间内快速实现这些应用级功能,也算是值得鼓励的。因此下面也基于阿里云邮件推送服务,来实现一个自己的邮件验证与推送体系 D )z'FOaI  
一、需求分析 Hm2}xnY  
做任何事情,顶层设计非常重要,优秀的设计往往让以后的事情事半功倍,所以在设计整个邮件验证与推送体系前,我们先看看有哪些功能是希望能够实现的
  • 支持邮件发送验证码邮件营销推送
  • 能够通过开发在程序逻辑或者管理界面中自动触发发送
  • 能够支持HTML的邮件内容,而HTML内容能够随时随地进行修改,方便美工和开发去调整
  • 验证类邮件能够支持IP统计、次数统计,能够进行时间限制、防止恶意发送
  • 推送类邮件能够支持统计发送数量、发送成功率等反馈数据。
  • 推送类邮件,用户可以退订。
G4g <PFx  
当然,最重要的,验证邮件要能在5-10秒内发送成功,到达率高 g0t$1cUR  
二、功能设计 is&A_C7yg  
经过以上需求分析,可以明确出以下一些关键的设计思路 yP2[!vYw  
1、需要设计模板功能。通过模板功能来支持HTML邮件内容以及随时可更新替换的要求,通过模板里的关键词参数设计,来达到验证码、用户名、营销内容的动态输入。 QW :-q(s  
2、需要设计一个验证码相关表。用来支撑邮件验证码校验、请求限制等功能。 O[[:3!6q  
3、需要设计一个发送记录相关表。记录所有发送记录,用于统计和分析。 aH<BqD[#  
4、管理后台尽量界面化管理。用户管理、邮件模板配置、发送记录查询等基本支撑功能,在后台尽量以界面化实现管理。 F*QZVg+<*X  
5、将企业邮局和邮件推送服务分开。以域名XXX.com为例,一般企业邮局地为zhangsan@XXX.com,邮件服务不宜以XXX.com为域,会和企业邮局服务相互干扰(也不是完全不可能,只是配置起来很麻烦),应当增加一个二级域名,例如mail.XXX.com,邮件服务地址就是service@mail.XXX.com .lrI|BH?z  
整体功能架构图如下: `[\*1GpAo  
XE);oL2xP  
.um]1_= \  
h-`Jd>u"  
三、详细实现步骤 =mV1jGqX  
正好手上有个网站,含有注册邮件验证功能,那就基于这个网站的开发,一步一步的讲解一下详细的实现步骤 ]F5?>du@~  
最终实现效果如下: ~5$V8yfx h  
网站域名是:alphams.cn,地址为 https://www.alphams.cn,用户注册地址为https://www.alphams.cn/Register @2Xw17[f35  
官方企业邮箱域是@alphams.cn,客服邮件地址为:kefu@alphams.cn ]$/TsN  
在阿里云申请的邮件服务域为:@mail.alphams.cn,服务邮件地址为:service@mail.alphams.cn nW2 fB8yq  
具体的实现步骤为: S8;Dk@rr(y  
1、注册阿里云企业邮箱免费版,实现客服邮件地址 J^[>F{8!n  
我们的企业邮局服务使用了阿里云企业邮箱免费版。(吐槽一下,竟然要转发微博才能注册还捆绑消费6元邮件推送) eaP,MkK&  
prE~GO7Z  
>-rDBk ;K  
FEgM4m.(G<  
^ sIxR*C[v  
支付成功后,可以在企业邮箱列表中看到 ,lSt}Lml  
?2hoY  
%lPAq  
下面继续设置解析,可以到帮助页面看到如何设置解析 \/,54c2  
0-#SvTf>;:  
0eq="|n^|  
前往域名解析处进行解析设置 TV)bX  
JSX-iHhW  
0/?V _  
解析后,企业邮箱生效,进行管理员用户密码初始化 Aa t _5p  
],ioY*4G  
PY=(|2tb4  
>?s[g)np  
使用管理员账号进入 https://qiye.aliyun.com/ N{v <z 6  
继续设置安全问题并绑定手机号 l6ayV  
--E_s /   
>?K@zsv}  
成功进入后继续添加客户账号 5Mm><"0  
.G#wXsJj  
xab1`~%K  
8Wx>,$k  
至此,企业邮局账号添加成功,到Foxmail中进行登录。 @,0W(  
2、配置阿里云邮件服务  m~"<k d  
首先要添加一个发信域名 ig Fz~  
+[C(hhk("  
o/273I  
/IS_-h7>XS  
jyRSe^x  
ximW!y7  
这里我们也可以注意到,阿里云也提示不要添加企业邮箱域名,这和我们之前设计中的思路一致,这里我们添加的域名是 mail.alphams.cn q_PxmPE@3v  
然后阿里云提示需要配置一些解析信息,从而生效域名 M3- bFIt  
A*tG[)  
@-y.Y}k#$~  
未完待续,第二篇地址:https://bbs.aliyun.com/read/289523.html "w}}q>P+sA  
[ 此帖被初码在2016-07-22 18:12重新编辑 ]
本帖最近评分记录: 2 条评分 云币 +18
小柒2012 云币 +10 您的无私奉献精神值得我们学习!向您致敬! 2016-07-23
鬼才神兵 云币 +8 您的帖子很精彩!希望很快能再分享您的下一帖! 2016-07-23
级别: 论坛版主
发帖
1753
云币
3171

只看该作者 沙发  发表于: 2016-07-23
您的帖子很精彩!希望很快能再分享您的下一帖!
级别: 论坛版主
发帖
3264
云币
8256

只看该作者 板凳  发表于: 2016-07-23
敏捷不是目的,而是工具,在深度和速度中寻求统一,尊重并挖掘技术价值,在互联网与信息浪潮中颤立不倒。 hPqapz]HcP  
tO+%b=Z^  
话说楼主是 net程序员,以前也捣鼓过群发,不过貌似QQ邮箱有拦截,当时还是搞活动,买了几十元的包来,貌似现在还没用完 C5sN[  
>;'1k'  
不过阿里的模板 的确省了不少事,直接调用api就可以了。 Pdo5 sve  
)q]j?Z.  
不过我们项目中都是自建模板 然后使用JAVA调用mail 实现注册验证的
你只看到我的技术,却没看到我的通宵。 你有你的需求,我有我的选择。 你嘲笑我技术宅孤独一生,我可怜你只能呆呆站在墙里。 你可以轻视昼夜不分的Coding,但我会证明它至少可以买到xx票。 技术宅的路上少不了苦逼和孤独,又怎样,哪怕成不了大神,也要码的漂亮。我是IT男,我为自己代言!
级别: 论坛版主
发帖
18
云币
350
只看该作者 地板  发表于: 2016-07-23
回 2楼(小柒2012) 的帖子
是的,做.NET的,阿里云的邮件推送服务还是比较简洁的,希望能赶超 SendCloud
级别: 论坛版主
发帖
3264
云币
8256

只看该作者 4楼 发表于: 2016-07-23
回 3楼(初码) 的帖子
你一说SendCloud  我突然 想起来 貌似DZ 有款插件就是它做的 邮件发送的,各种回复,提醒什么的功能。
你只看到我的技术,却没看到我的通宵。 你有你的需求,我有我的选择。 你嘲笑我技术宅孤独一生,我可怜你只能呆呆站在墙里。 你可以轻视昼夜不分的Coding,但我会证明它至少可以买到xx票。 技术宅的路上少不了苦逼和孤独,又怎样,哪怕成不了大神,也要码的漂亮。我是IT男,我为自己代言!
级别: 技术砖家
发帖
993
云币
2912
只看该作者 5楼 发表于: 2016-07-28
级别: 管理员
发帖
729
云币
758
只看该作者 6楼 发表于: 2016-07-28
感谢楼主分享,帮推荐!
级别: 小白
发帖
42
云币
77
只看该作者 7楼 发表于: 2016-07-29
Re使用阿里云邮件推送服务架设自己邮件验证与推送体系(一)
这个不错,先mark一下。
级别: 禁止发言
发帖
17
云币
64
只看该作者 8楼 发表于: 2016-07-29
用户被禁言,该主题自动屏蔽!
级别: 新人
发帖
6
云币
10
只看该作者 9楼 发表于: 2016-07-30
Re使用阿里云邮件推送服务架设自己邮件验证与推送体系(一)
我也可以免费申请了,能不能商业用呀
级别: 新人
发帖
10
云币
23
只看该作者 10楼 发表于: 2016-07-31
Re使用阿里云邮件推送服务架设自己邮件验证与推送体系(一)
使用php发送stmp的时候 会暴露源站地址的,模版和api又不太会用啊
级别: 新人
发帖
8
云币
14
只看该作者 11楼 发表于: 2016-09-03
Re使用阿里云邮件推送服务架设自己邮件验证与推送体系(一)
挺好的帖子
级别: 新人
发帖
7
云币
11
只看该作者 12楼 发表于: 2016-10-13
Re使用阿里云邮件推送服务架设自己邮件验证与推送体系(一)
好文 好贴
级别: 论坛版主
发帖
18
云币
350
只看该作者 13楼 发表于: 2016-10-28
Re:Re使用阿里云邮件推送服务架设自己邮件验证与推送体系(一)
引用
引用第10楼upay于2016-07-31 11:11发表的 Re使用阿里云邮件推送服务架设自己邮件验证与推送体系(一) : ]&lY%"U$i  
使用php发送stmp的时候 会暴露源站地址的,模版和api又不太会用啊  [url=https://bbs.aliyun.com/job.php?action=topost&tid=289507&pid=808401][/url] E2R&[Q"%  
LG9+y  
具体是什么意思?
级别: 新人
发帖
9
云币
35
只看该作者 14楼 发表于: 2016-10-29
Re使用阿里云邮件推送服务架设自己邮件验证与推送体系(一)
您的帖子很精彩!希望很快能再分享您的下一帖!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个