发送邮件&短信(网易云信)
来源:互联网 发布:昆明西山网络花店 编辑:程序博客网 时间:2024/04/30 00:14
发送邮件&短信(网易云信)
发送邮件
CURL发送邮件
1.测试所安装的curl是否支持smtp(若是树莓派,安装一个curl的open-ssl就可以)curl-config --protocols |grep SMTP SMTP SMTPS
2.确认邮箱的第三方客户端密码(163、qq都有设置)
3.curl发送代码(没有尝试发送附件,后加)curl -s --url "smtp://smtp.163.com" \ --mail-from "xxxx@163.com" \ --mail-rcpt "12345678@qq.com" \ --upload-file mail.txt --user "xxxx@163.com:xxxxxx"参数说明: --url 邮箱服务器地址 可在163、qq等邮箱上找到 --mail-from 发件人 --mail-rcpt 收件人 --upload-file 正文 --user 发送人的邮箱账号:第三方客户端密码mail.txt文件格式说明 From:xxxx@163.com To:123456@qq.com Subject: 邮件测试 你好!这是一封测试邮件
163设置第三方客户端密码
- qq邮箱设置第三方客户端密码
- 163发送邮件到qq邮箱
发送短信
本想用飞信的,但是不提供API,网友提供的又不能用,我也没去分析飞信的url。就换成了网易云信,
功能挺强,发送也挺简单,但是太贵,最少40000(2000块钱!)。
- 注册云信账号,创建应用
- 添加短信功能,购买短信(最少40000条)或者免费试用(需要等待审核,太慢)
curl发送短信功能代码
curl -X POST -H "AppKey:你的应用appkey" \ -H "CurTime: 当前时间戳,最多使用五分钟" \ -H "CheckSum: 校验和(最开始坑在这)" \ -H "Nonce: (随机数最多12位)" \ -H "charset: utf-8" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d 'templateid=模板号(最后坑这,放弃了使用)&mobiles=["手机号"]¶ms=["hello"]' \ 'https://api.netease.im/sms/sendtemplate.action'
参数:CheckSum&CurTime
CheckSum
CheckSum=SHA1(AppSecret + Nonce + CurTime)
三个参数(应用密码+随机数+当前时间戳)拼接的字符串,进行SHA1哈希计算,转化成16进制字符(String,小写)CurTime:获取当前时间戳(最多使用五分钟)
shell命令:date ‘+%s’ 结果: 1489329510- templateid短信模板:自己添加,之后等待审核。很慢。
参考:
- curl发送邮件
- 网易云信API概述
- 网易云信短信API
附录:CheckSum java代码
import java.security.MessageDigest;public class CheckSumBuilder { public static void main(String[] args) { //我在这写了个固定输出,把你的APP_Secret 随机数 CurTime传进去生成校验和填到上述代码的 //CheckSum处 System.out.println(getCheckSum("a98cf236e6b",\ "4tgggergig6w323t23t", \ "1489323670")); } // 计算并获取CheckSum public static String getCheckSum(String appSecret, String nonce, String curTime) { return encode("sha1", appSecret + nonce + curTime); } // 计算并获取md5值 public static String getMD5(String requestBody) { return encode("md5", requestBody); } private static String encode(String algorithm, String value) { if (value == null) { return null; } try { MessageDigest messageDigest = MessageDigest.getInstance(algorithm); messageDigest.update(value.getBytes()); return getFormattedText(messageDigest.digest()); } catch (Exception e) { throw new RuntimeException(e); } } private static String getFormattedText(byte[] bytes) { int len = bytes.length; StringBuilder buf = new StringBuilder(len * 2); for (int j = 0; j < len; j++) { buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]); buf.append(HEX_DIGITS[bytes[j] & 0x0f]); } return buf.toString(); } private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };}
1 0
- 发送邮件&短信(网易云信)
- php发送短信(调用网易云信实现)
- php发送短信(调用网易云信实现)
- php发送短信(调用网易云信实现)
- 网易云信短信验证
- Java使用【网易云信】短信接口,给手机用户发送并校验验证码
- c#网易云信短信接口实例
- 网易云信 短信接口Swift 调用
- nodejs+短信服务+网易云信
- 网易云信-网易验证码短信,网易通知类短信的使用
- 网易邮箱发送邮件
- 发送短信/邮件/打电话:
- 发送短信或邮件
- springboot 邮件接收发送 阿里云发送短信组件
- 使用网易云通信发送验证码,通知类型短信
- 网易云信短信验证码验证php实现
- Java调用网易云信的短信接口代码
- thinkphp网易云信短信接口核心代码
- VMware网络连接模式—桥接、NAT以及仅主机模式的区别
- 1430: 小猴打架
- scope 命名方法
- Keras求取任意两个节点之间的导数
- 一次创业公司的抢购优化
- 发送邮件&短信(网易云信)
- CentOS6.5添加虚拟IP(VIP)
- form提交过程
- CUDA/caffe ERROR:cudaGetDeviceCount returned 30/35,Check failed: error == cudaSuccess (30/35 vs. 0)
- OS和编译原理回顾-重要是多语言开发能力
- centos配置静态ip无法访问互联网解决办法
- sock结构
- FindWindow和FindWindowEx
- HDU