今天在知乎上有人提问“如何发送验证码邮件”于是乎心血来潮写了这篇【发送验证码邮件就是如此简单】来跟你们分享一下。
说到邮件,相信大家肯定都有过这样的亲身经历,例如:给你发送邮件的号码咋看都不是电话号码。
难不成邮件不仅移动电话,还可以通过其他方式发送的?没错,确实可以,那就须要引入邮件服务提供商了。如腾讯、阿里、Twillo等等,当然这可不是免费提供服务的,毕竟天底下没有免费的早餐。譬如腾讯邮件服务收费:
套餐的选择可以按照实际需求出发进行选择。
本文选用腾讯邮件服务,因为腾讯提供了免费100条邮件,这足以够俺们去试错了。
当俺们第一次登录腾讯云时,需要经历一系列的授权认证,最后会出现如下界面,点击【开始接入】之后,完成授权,此时半只脚早已走入了发短信的房门啦~
另外的半只脚须要完成如下4个步骤:
步骤一:创建短信签名
进入邮件控制台,找到签名管理,创建邮件签名。
签名类型可选:网站、APP、公众号、小程序。其中网站、APP须要提供备案后台截图,要求较高,而剩余两个只需提供设置页面截图即可,因此这儿选择公众号为例进行说明(所以说想要挽留女票,你还须要创建一个微信公众号,还没有的话,赶紧先去创建先哟)。
短信签名你们都肯定见过,只是不知道那就是罢了。例如邮件:
其中“【微信支付】”就是所谓的邮件签名。
创建以后,签名都会步入初审阶段。
在等待初审之余,我们可以继续步骤二的操作。
步骤二:创建邮件正文模板
依然在邮件控制台,找到正文模板管理,创建正文模板。
短信内容可选用“标准模板”,就是一些常见通用的模板,如下:
咋一看,好像十分熟悉的样子,没错就是那么标准。
同上,在创建完成以后,也须要等待初审。
步骤三:等待初审
官方预计两小时内完成初审,这时,可以去撸个串、吃个饭、点个下午茶哪些的。
步骤四:发送邮件
腾讯云邮件SDK文档可以参考:
打开链接,选择Java SDK,然后点击实例代码下的发送邮件。
发送邮件的详尽可以参考实例代码,本文这儿对其示例做一些简化,要明晰俺们的目的嘛,简单的发个验证码邮件嘛,所以有些不必须的俺们就先放放。简化如下:
public static void main(String[] args) {
try {
/*
* 实例化一个认证对象,入参需要传入腾讯云账户密钥对应 secretId 和 secretKey
* 查询地址:https://console.cloud.tencent.com/cam/capi
*/
Credential cred = new Credential("secretId", "secretKey");
// 实例化 发送短信 的 client 对象
SmsClient client = new SmsClient(cred, "");
// 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
SendSmsRequest req = new SendSmsRequest();
/*
* 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID
* 查询地址:https://console.cloud.tencent.com/smsv2/app-manage
*/
String appid = "SDKAppID";
req.setSmsSdkAppid(appid);
/*
* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息
* 查询地址:https://console.cloud.tencent.com/smsv2/csms-sign
*/
String sign = "思于冉";
req.setSign(sign);
/*
* 模板 ID: 必须填写已审核通过的模板 ID,可登录 [短信控制台] 查看模板 ID
* 查询地址:https://console.cloud.tencent.com/smsv2/csms-template
*/
String templateID = "templateID";
req.setTemplateID(templateID);
/*
* 下发手机号码
* 标准:+[国家或地区码][手机号]
* 例如+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号
*/
String[] phoneNumbers = {"+8613711112222"};
req.setPhoneNumberSet(phoneNumbers);
/*
* 模板参数: 若无模板参数,则设置为空
*/
String[] templateParams = {"param1", "param2"};
req.setTemplateParamSet(templateParams);
/* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的
* 返回的 res 是一个 SendSmsResponse 类的实例,与请求对象对应 */
SendSmsResponse res = client.SendSms(req);
// 输出 JSON 格式的字符串回包
System.out.println(SendSmsResponse.toJsonString(res));
} catch (TencentCloudSDKException e) {
e.printStackTrace();
}
}
注意事项:
[1]如何查询腾讯云帐号对应的secretId 和 secretKey
打开链接:
[2]短信应用 ID怎么查询
查询地址:
[3]如何查询邮件签名
查询地址:
[4]如何查询邮件模板Id
查询地址:
步骤五:激动人心
最后点击运行按键,过1s,手机叮一下,收到了如下邮件:
写在最后
发送邮件在好多业务中都有出现,最常见的就是获取登陆验证码、企业营销推送、快递取件信息、系统异常警告、日志监控警告推送、物联网信息监控警告等等,这些都可以使用本文介绍到的这些方法去实现。
如果认为有用