使用阿里云邮件推送服务架设自己邮件验证与推送体系

本文介绍了如何使用阿里云邮件推送服务搭建邮件验证与推送体系,包括需求分析、功能设计和详细实现步骤。通过模板功能、验证码相关表和发送记录表,实现了验证码发送、邮件营销推送等功能,确保高效、安全的邮件服务。
摘要由CSDN通过智能技术生成

引:

我们会发现,越来越多的互联网应用和企业级应用,开始使用邮件验证码验证替代邮件链接验证,例如下图:

image

又例如:

image

当然,也有更多的应用使用了漂亮的HTML代码来装饰邮件,例如:

image

又例如:

image

我想,一个优秀的互联网应用或者个体经营的站长站点,如果在注册、身份证验证、信息推送等功能上,加上如上效果的邮件服务,一定能带来更加优质的用户体验

而邮件服务也不是现在才有,我们可以回顾一下发展历史

很多站长应该都记得,在例如Discuz、WordPress等CMS中,都可以配置SMTP信息,开通了163等邮箱的SMTP功能就可以填入账号密码,从而达到发送邮件的功能。

很多企业在若干年前,也热衷于使用大型如ExchangeServer,中小型如UMail等软件搭建自己的企业邮件服务系统。

但是随着互联网的发展,伴随着QQ等邮件服务商的走红,传统的国外那一套邮件规则和秩序已经发生了改变,有时候就算你有很多IP,做了反向解析,在Spamhaus白名单,又或者虚拟了不同的helo域,QQ邮箱还是照拦不误,最终还是得单独花钱向国内外各大ESP购买独立通道

在这种情况下,自建邮局系统或者邮件SMTP服务,就显得得不偿失了,所以一方面各大企业邮箱服务越做越好,得到企业的认可,另一方面,国内外如SendGrid,SendCloud等第三方邮件PUSH服务商也逐渐做大,他们用更专业的手段,去解决通道、白名单、信誉度等各种邮件服务问题,而客户只需要通过SMTP协议或者封装的API接口,就可以非常便捷的给用户发送邮件

就我所知,目前国内做的最好的当属搜狐的SendCloud,但是SendCloud发展了这么多年,也越来越复杂和专业,我认为更适合有大型EDM需求的应用使用,作为中小企业和创业者以及站长,首推依然是阿里云的邮件推送服务,一如既往秉持阿里云的特点:使用傻瓜,上手快速,文档俱全,但漏洞和问题多多不过作为AWS的追赶者,能在短时间内快速实现这些应用级功能,也算是值得鼓励的。因此下面也基于阿里云邮件推送服务,来实现一个自己的邮件验证与推送体系

一、需求分析

做任何事情,顶层设计非常重要,优秀的设计往往让以后的事情事半功倍,所以在设计整个邮件验证与推送体系前,我们先看看有哪些功能是希望能够实现的

  • 支持邮件发送验证码邮件营销推送
  • 能够通过开发在程序逻辑或者管理界面中自动触发发送
  • 能够支持HTML的邮件内容,而HTML内容能够随时随地进行修改,方便美工和开发去调整
  • 验证类邮件能够支持IP统计、次数统计,能够进行时间限制、防止恶意发送
  • 推送类邮件能够支持统计发送数量、发送成功率等反馈数据。
  • 推送类邮件,用户可以退订。

当然,最重要的,验证邮件要能在5-10秒内发送成功,到达率高

二、功能设计

经过以上需求分析,可以明确出以下一些关键的设计思路

1、需要设计模板功能。通过模板功能来支持HTML邮件内容以及随时可更新替换的要求,通过模板里的关键词参数设计,来达到验证码、用户名、营销内容的动态输入。

2、需要设计一个验证码相关表。用来支撑邮件验证码校验、请求限制等功能。

3、需要设计一个发送记录相关表。记录所有发送记录,用于统计和分析。

4、管理后台尽量界面化管理。用户管理、邮件模板配置、发送记录查询等基本支撑功能,在后台尽量以界面化实现管理。

5、将企业邮局和邮件推送服务分开。以域名XXX.com为例,一般企业邮局地为zhangsan@XXX.com,邮件服务不宜以XXX.com为域,会和企业邮局服务相互干扰(也不是完全不可能,只是配置起来很麻烦),应当增加一个二级域名,例如mail.XXX.com,邮件服务地址就是service@mail.XXX.com

整体功能架构图如下:

邮件

三、详细实现步骤

正好手上有个网站,含有注册邮件验证功能,那就基于这个网站的开发,一步一步的讲解一下详细的实现步骤

最终实现效果如下:

网站域名是:alphams.cn,地址为 https://www.alphams.cn,用户注册地址为https://www.alphams.cn/Register

官方企业邮箱域是@alphams.cn,客服邮件地址为:kefu@alphams.cn

在阿里云申请的邮件服务域为:@mail.alphams.cn,服务邮件地址为:service@mail.alphams.cn

具体的实现步骤为:

1、注册阿里云企业邮箱免费版,实现客服邮件地址

我们的企业邮局服务使用了阿里云企业邮箱免费版。(吐槽一下,竟然要转发微博才能注册还捆绑消费6元邮件推送)

image

image

支付成功后,可以在企业邮箱列表中看到

image

下面继续设置解析,可以到帮助页面看到如何设置解析

image

前往域名解析处进行解析设置

image

解析后,企业邮箱生效,进行管理员用户密码初始化

image

使用管理员账号进入 https://qiye.aliyun.com/ 

继续设置安全问题并绑定手机号

image

成功进入后继续添加客户账号

image

至此,企业邮局账号添加成功,到Foxmail中进行登录。

2、配置阿里云邮件服务

首先要添加一个发信域名

image

image

这里我们也可以注意到,阿里云也提示不要添加企业邮箱域名,这和我们之前设计中的思路一致,这里我们添加的域名是 mail.alphams.cn

然后阿里云提示需要配置一些解析信息,从而生效域名

image

下面前往阿里云的域名解析中进行设置

image

设置好了以后回到刚才的页面进行验证

image

这样,域名就添加成功了

image

下面继续添加发信地址

image

image

这里我们可以看到,发信账号如我们之前所说,是service@mail.alphams.cn

发信类型选择了批量邮件(这里有个疑问,在实测中发现,阿里云这个推送服务有触发邮件和批量邮件,触发邮件类型偶尔会发不出去或者接收不到,不知道原因是什么,有深入研究的人感谢告知我一下)

image

这时候回信地址还未通过验证,我们点击验证回信地址,然后前往之前申请的QQ企业邮箱中,来验证

image

这样就进行了验证

image

这时候还需要设置一下SMTP密码,我们设置为XXX

image

image

这里特别需要注意的是阿里云的官方说明

image

发信域名在创建之前要仔细,因为不能给删除和修改。

这样,阿里云邮件服务的配置就完成了。

SMTP服务地址为:smtpdm.aliyun.com,SMTP账号就是service@mail.alphams.cn,密码就是刚才设置的密码

到这一步为止,已经可以为很多站长网站的邮件服务提供支撑了,在一些CMS里面直接配置入SMTP信息即可使用

但是,网站和应用大部分都是独立开发,我们更需要设计自己的邮件发送和功能处理体系,因此下面我们继续

3、用户注册页面的准备工作

具体的页面编码和程序逻辑因为非今天所讲重点,所以这里省略若干字以及若干代码,把主要的步骤列出来,源码可邮件找我要:

由于要加入邮件地址的验证,所以先对注册页面的完整流程进行设计,逻辑图如下:

用户注册

其中,为了增强用户体验,先验证邮件地址,再输入用户名,而这种里面的关联和强逻辑用一个注册会话表来进行控制

注册会话表结构如下:

image

临时验证成功的邮件地址,存入会话表,并向客户端反回一个会话编号,最终完成注册时,需要用户名密码连同这个会话编号一起传入后台验证注册

接下来就是邮件验证表的设计

这个表既要能支持没有用户状态的验证,例如注册验证,又要能支持用户运行时的验证,例如修改密码验证等。

表结构如下:

image

其中渠道为具体的使用场景,状态和过期时间两个字段用来双重控制有效性,预留的两个参数,用于存储用户编号、注册会话编号等额外的数据

当然,也少不了用户表,因为这里并没有什么特殊的用户场景,所以用户表较为简单,结构如下:

image

4、邮件模板的设计

接下来就进入具体的开发,在开发中,肯定会用到对邮件的发送,在我们这个设计的体系里面,最上面也说了,需要设计模板机制,那么我们就先设计邮件模板功能

具体的功能架构为:

邮件模板

这里设计了最简单的模板功能,主要思路即数据库存储HTML模板内容,参数直接放入HTML代码中,在开发时进行替换

下面是邮件模板表的设计,表结构如下:

image

在后端对模板进行增删改查管理,省略代码若干,最终效果如下:

先构建

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值