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. Activiti(生成25张表)

    有两种方式,第一种是使用默认的配置文件,第二种是指定配置文件: package com.ouyan.activiti.table; import org.activiti.engine.Process ...

  2. memcached命令知识

    memcached安装配置 yum install memcached      memcached最大的缓存单位为1M,大于1M的单项数据将不会缓存      memcached是基于文本协议的,所 ...

  3. 纯css 实现横向滚动条--移动端

    * { margin:0; padding:0; } li { list-style:none; } .box1 { width:320px; height:60px; overflow:hidden ...

  4. ROS开发与常用命令

    初始化ROS的catkin工作空间:catkin_init_workspace 编译ROS的catkin工作空间:catkin_make 读取当前catkin工作空间的环境变量:source deve ...

  5. oralce 批量更新

    <update id="batchUpdateCompensatoryData" parameterType="java.util.List"> & ...

  6. (转)Thread的中断机制(interrupt)

    先看收集了别人的文章,全面的了解下java的中断: 中断线程 线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡.还是等待新的 ...

  7. 【LeetCode每天一题】Container With Most Water(容器中最多的水)

    Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). ...

  8. [LeetCode] 364. Nested List Weight Sum II_Medium tag:DFS

    Given a nested list of integers, return the sum of all integers in the list weighted by their depth. ...

  9. jupyter 快捷键

    Jupyter Notebook 的快捷键 Jupyter Notebook 有两种键盘输入模式.编辑模式,允许你往单元中键入代码或文本:这时的单元框线是绿色的.命令模式,键盘输入运行程序命令:这时的 ...

  10. MySQL数据类型--与MySQL零距离接触 3-2 外键约束的要求解析

    列级约束:只针对某一个字段 表级约束:约束针对2个或2个以上的字段 约束类型是按功能来划分. 外键约束:保持数据一致性,完整性.实现数据表的一对一或一对多的关系.这就是把MySQL称为关系型数据库的根 ...