java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况

邮件短信微服务

spring boot 微服务

接收json格式参数

验证参数合法化

放入队列

返回json

内网访问,IP白名单限制

activemq消息队列

独立部署到docker里

邮件发送

从activeMQ里取待发送邮件

根据邮箱类型选择对应服务商接口发送

mysubmail

主账号邮件验证码类无限额(需要找客服技术申请开通)

子账号营销邮件

TLS加密需要找技术加上

sendcloud

sendgril

amazon SES

每天5万,每秒14封

国内邮箱白名单配置(foxmail,qq,163,126,yeah,sina,sohu,189,139)

失败重发5次丢弃

暂停5秒再放回队列

放回队列需要切换不同运营商发送才能保证比较高的成功率,失败后放回队列指定其他运营商改成下面顺序:submail->sendclound->amazonses->sendgrid->submail
需要保证各个运营商有比较充足的余额效果才比较好 验证码实时性比到达率重要,超过2分钟收不到就没意义了 失败后直接放回队列里重发,邮件少的话马上就给取出来重发了,短时间内连续重发可能会被邮件服务器判断为垃圾邮件拒绝 根据邮件服务器返回状态作出相应处理 推广邮件用户退订,记录后不继续推广 短信发送 从activeMQ里取待发送短信 没有指定运营商,默认+86用submail,其他用twilio,指定submail的再判断国内国际的分开发送 根据号码类型选择对应服务商接口发送 mysubmail 1: message/send 接口,优点:方便、快速对接使用,免模板,可直接提交任意内容(需要符合短信发送规范,短信签名前置),缺点:并发效率不高,适用于并发小,内容变动或模板变动较多的场景(并发效率低指高于每秒1000的并发,低于这个并发需求请无视) 2:message/xsend 接口,优点:高稳定性,低延迟,高并发,适用验证码类要求低延迟,高请求效率的场景,缺点:接入时需要提前创建模板,并指定模板ID 可以先使用send接口发送后自动创建模版,后面再换成自动生成的模版用xsend来发送 需要判断有+86的走国内短信API,其他国家代码走国际短信API
就这2种判断就可以了,国际短信API可以发送除中国以外的235个国家的短信
国外的是区号必须加的,不然无法判断国家
国内的不能带上+86,否则会报错,需要去掉+86
先加一个国内号码的合法性验证,国外的后续再慢慢加上正则表达式规则 国际短信 不强制传【】,国内是运营商强制要求的,必须传【】而且【xxx】需要放在开头那里 sendcloud 必须先创建签名、模版,而且最多创建5个,需要传签名,、模版ID才能发送,已决定放弃 twilio sms 发送到国内手机号到达率比较低 amazon sms(待开通) 阿里短信(待申请) 失败重发5次丢弃 失败的改成另外一个运营商再放到队列里 根据短信服务器返回状态作出相应处理

邮件服务调研:

邮件服务

需要解决问题

QQ,foxmail收不到sendgril邮件

腾讯邮箱白名单服务要求很严格,区块链的申请不了

区分国内外邮箱进行分别处理

对邮件进行分类处理,重要的验证码、订单通知用一个域名多个帐号,广告推送的用另外一个域名多个帐号

对邮件发送进行轻量级队列化,失败后放回队列重发

解决方案

注册域名备案

aax-pro.com aax-pro.cn 都可以注册,两个一起一年84元
aax-intl.com 也可以,一年58元 域名备案后使用网易企业邮箱服务 使用sendcloud作为备用 使用mysubmail作为备用 使用Gmail企业邮箱发送 放到aws或香港同事电脑上测试 火币发送邮件 火币至少用了6个不一样的邮箱帐号发送不同类型的通知 订单、重置密码:noreply@mail.huobi.pro
安全验证:noreply@mail.huobipro.com
邮箱验证:service2@huobi.com
推广服务通知:support3@huobi.com,service3@huobi.com,vip@huobi.com 网易企业邮箱 每个账号一天最多发1000封,发送频率每15分钟不得超过500封 单次群发不宜超过200个收件人,100个收件人效果最佳 可以使用多个邮箱发送,用户数可以随时增加的 我想购买 200个用户,标准价:44400元/年; 优惠价:29600元/年
我想购买 100个用户,标准价:22500元/年; 优惠价:15000元/年
我想购买 10个用户,标准价:2925元/年; 优惠价:1950元/年
我想购买 20个用户,标准价:5550元/年; 优惠价:3700元/年
https://qiye.163.com/entry/buy-price.htm 国家工信部要求,邮箱域名需要进行备案
如果不备案,不排除域名提供商会响应工信部要求将没有备案的域名进行清理,一般主要体现为清理域名解析。
若没了解析,则会影响到您的邮箱正常收取外域邮件,以及无法正常登录mail.域名。
海外注册用户建议联系国内域名服务商购买域名空间进行备案。 腾讯企业邮箱 https://exmail.qq.com 免费版,50人帐号上限
100个用户,标准价:14000元/年,免费赠送自选域名 出错原因:该服务器IP的发信频率大幅度超过QQ邮箱限制。
QQ邮箱对来自相同IP的外部发信服务器有一定的频率限制:
1、超过每分钟发信量限制,此IP地址被禁止发信若干分钟。
2、超过每小时发信量限制,此IP地址被禁止发信若干小时。
3、超过每日发信量限制,此IP地址本日内禁止再发信。
4、以上频率限制数值属于QQ邮箱保密数据,恕不公开。 国内代发邮件服务 mysubmail SUBMAIL_赛邮云通信_短信平台_邮件平台_语音验证码_国际短信
https://www.mysubmail.com/ 邮件分行业短信通道,营销通道两种,收费和到达率不一样
邮件费用比sendcloud贵点,短信费用比sendcloud便宜 50万封以上的邮件资源包均享有 6 个月的独立 IP 服务 10万封¥720单价7.2元/千封
50万封¥3000单价6元/千封
200万封¥11000单价5.5元/千封
500万封¥22500单价4.5元/千封 有SUBHOOK邮件和短信 API 事件推送通知接口 SMTP - 开发者文档 - SUBMAIL - 赛邮云通信
https://www.mysubmail.com/chs/documents/developer/AJhT63 事务类短信资源包:1万条390元,5万条1850元,10万条3500元,300万条90000元(0.03每条)
运营类短信资源包:1万条420元,5万条2000元,10万条3800元,300万条99000元(0.033每条)
国际短信:美国0.055元/条,英国0.275元/条,日本0.334元/条,法国0.371元/条,澳大利亚0.269元/条 Sendcloud 搜狐集团旗下子公司,2014年从搜狐集团中独立,专注于解决企业触达用户的需求,为企业提供邮件、短信、语音通讯等SaaS服务
https://www.sendcloud.net 保证其硬退比例不超过单次发送总量的5% SendCloud 为你多样化。策略化的发送方案,让发信频率稳定可控。提供的DKIM签名、SPF、白名单确认等措施,更让邮件高效入箱。 月发送量10000封以内¥59/每月
月发送量10001-50000封部分¥5.6/千封
月发送量50001-100000封部分¥5.3/千封
月发送量100001-200000封部分¥5/千封
月发送量200000封以上¥4/千封 企业账户初始发信额度每天3000 正式认证是需要审核网站信息的,上线了才能使用 域名跟客服确定了可以不用备案的 htt http://www.magicwinmail.com/register.php 标准版 永久使用、标准功能、含一年的技术服务和升级; 不限邮箱数许可标准版 12000.00 白金版 永久使用、完备功能、含永久的技术服务和升级; 不限邮箱数许可白金版 25000.00 Winmail 邮件服务器软件 :: 版本功能区别
http://www.magicwinmail.com/edition.php 华美科技,域名需自备不提供域名 只提供软件和技术服务,需要自己搭建邮件服务器 国外邮件服务 sendgril gmail amazon SES

java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况的更多相关文章

  1. SpringBoot整合阿里短信服务

    导读 由于最近手头上需要做个Message Gateway,涉及到:邮件(点我直达).短信.公众号(点我直达)等推送功能,网上学习下,整理下来以备以后使用. 步骤 点我直达 登录短信服务控制台 点我直 ...

  2. 重构客户注册-基于ActiveMQ实现短信验证码生产者

    重构目标:将bos_fore项目中的CustomerAction作为短信消息生产者,将消息发给ActiveMQ,创建一个单独的SMS项目,作为短信息的消费者,从ActiveMQ获取短信消息,调用第三方 ...

  3. 自定义smokeping告警(邮件+短信)

    前段时间接到公司IT同事需求,帮助其配置smokeping的告警功能,之前配置的姿势有些问题,告警有些问题,现在调试OK,在此将关键配置点简单记录下. 关键的配置项主要有: 定义告警规则并配置将告警信 ...

  4. Java 实现手机发送短信验证码

    Java 实现手机发送短信验证码 采用引入第三方工具的方式,网上查了半天,发现简单的实现方式便是注册一个中国网建的账号,新建账号的时候会附带赠几条免费短信,彩信 ,之后想要在使用就得花钱了.简单的操作 ...

  5. Java调用阿里云短信通道服务【千锋】

    这里我们使用SpringBoot 来调用阿里通信的服务. 阿里通信,双11.收到短信,日发送达6亿条.保障力度非常高. 使用的步骤: 1.1. 第一步:需要开通账户 1.2. 第二步:阅读接口文档 1 ...

  6. 零基础大数据入门教程:Java调用阿里云短信通道服务

    这里我们使用SpringBoot 来调用阿里通信的服务. 阿里通信,双11.收到短信,日发送达6亿条.保障力度非常高. 使用的步骤: 1.1. 第一步:需要开通账户 1.2. 第二步:阅读接口文档 1 ...

  7. 移动端获取短信验证码java实现——阿里云短信服务

    需求:移动端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短信 ...

  8. 浏览器端获取短信验证码java实现——阿里云短信服务

    需求:浏览器端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短 ...

  9. java实现阿里云短信服务发送验证码

    由于做项目的时候遇到了接第三方短信服务,所以记录一下. 一.新建一个maven项目并导入相关依赖 <!--手机发送短信验证码--> <dependency> <group ...

随机推荐

  1. MySQL数据库的权限问题操作及基本增删改查操作

    前面我们讲了mysql的基本内容,现在我们详细的了解一下mysql中的具体操作. what's the SQl SQL(Structured Query Language 即结构化查询语言) SQL语 ...

  2. 轻量级ORM工具Simple.Data

    今天推举的这篇文章,本意不是要推举文章的内容,而是据此介绍一下Simple.Data这个很有意思的类ORM工具. 现在大家在.NET开发中如果需要进行数据访问,那么基本都会使用一些ORM工具,比如微软 ...

  3. Windows XP解决显示桌面图标消失的问题

    1.依次单击“开始”,“运行”,在运行对话框中输入regsvr32 /n /i:u shell32.dll,按回车键 2.弹出“shell32.dll中的DllInstall成功”的窗口,表明已将数据 ...

  4. golang 的 buffered channel 及 unbuffered channel

    The channel is divided into two categories: unbuffered and buffered. (1) Unbuffered channelFor unbuf ...

  5. Mac搭建PHP+rabbitMQ环境

    RabbitMQ是一个在AMQP基础上实现的企业级消息系统.何谓消息系统,就是消息队列系统,消息队列是“”消费-生产者模型“”的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅 ...

  6. [django]主次表如何取出对方数据[主表obj.子表__set()]

    [sql]mysql管理手头手册,多对多sql逻辑 国家--城市例子 class Country(models.Model): name = models.CharField(max_length=3 ...

  7. [vue]基础篇stepbystep案例实践(废弃)

    去看这个就好了 总结: 1.子组件可以触发父组件的方法,this.$emit() //(通知父组件干活) 2.父组件可以调用子组件的方法() // ref 如果放在组件上 获取的是组件的实例 并不是组 ...

  8. (转)深度教程:POS和POW全解析

    如果你是一名资深的比特币矿工或商人,你一定听说过POW和POS,但是当前在国内,却几乎没有人明白这到底是什么意思,也几乎没有相关的中文资料,小编吐血撰写,是为了让大家更好理解这些概念.   读完本文, ...

  9. 动态添加class的一种方法

    外面可以写一层class再用:class 绑定新的clss进去  而且可以用三目运算.爽歪歪

  10. SQL数据库存储过程

    添加修改 create PROCEDURE sp_insert_1(pid int,pname varchar(200),page varchar(200),pscore int,out code i ...