发送邮件&短信(网易云信)

2023-11-05 01:32

本文主要是介绍发送邮件&短信(网易云信),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

##发送邮件&短信(网易云信)

###发送邮件

  • CURL发送邮件
    1.测试所安装的curl是否支持smtp(若是树莓派,安装一个curl的open-ssl就可以)
    curl-config --protocols |grep SMTPSMTPSMTPS
    

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.comTo:123456@qq.comSubject: 邮件测试你好!这是一封测试邮件
```
  • 163设置第三方客户端密码
    163
  • qq邮箱设置第三方客户端密码
    qq
  • 163发送邮件到qq邮箱
    163toqq

###发送短信

本想用飞信的,但是不提供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=[“手机号”]&params=[“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"));}// 计算并获取CheckSumpublic 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' };
}

这篇关于发送邮件&短信(网易云信)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346512

相关文章

Android中如何实现adb向应用发送特定指令并接收返回

1 ADB发送命令给应用 1.1 发送自定义广播给系统或应用 adb shell am broadcast 是 Android Debug Bridge (ADB) 中用于向 Android 系统发送广播的命令。通过这个命令,开发者可以发送自定义广播给系统或应用,触发应用中的广播接收器(BroadcastReceiver)。广播机制是 Android 的一种组件通信方式,应用可以监听广播来执行

61.以太网数据回环实验(4)以太网数据收发器发送模块

(1)状态转移图: (2)IP数据包格式: (3)UDP数据包格式: (4)以太网发送模块代码: module udp_tx(input wire gmii_txc ,input wire reset_n ,input wire tx_start_en , //以太网开始发送信

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示; 代码如下: Demo07.jrxml <?xml version="1.0" encoding="UTF-8"?><!-- Created with Jaspersoft Studio version 6.6.

大厂算法例题解之网易2018秋招笔试真题 (未完)

1、字符串碎片 【题目描述】一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,“aaabbaaac” 是由下面碎片组成的:‘aaa’,‘bb’,‘c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的 平均长度是多少。 输入描述: 输入包括一个字符串 s,字符串 s 的长度 length(1 ≤ length ≤ 50),s 只含小写字母(‘a’-‘z’) 输出描述

node.js实现阿里云短信发送

效果图 实现 一、准备工作 1、官网直达网址: 阿里云 - 短信服务 2、按照首页提示依次完成相应资质认证和短信模板审核; 3、获取你的accessKeySecret和accessKeyId; 方法如下: 获取AccessKey-阿里云帮助中心 4、获取SignName(签名名称)和 TemplateCode(模板code); 二、代码实现 1、项目结构 【/c

springboot项目编写发送异常日志到企微工具包

1.创建基础Bean public final class ThreadFactory implements java.util.concurrent.ThreadFactory {private static final AtomicInteger poolNumber = new AtomicInteger(1);private final ThreadGroup group;priva

怎么利用NodeJS发送视频短信

随着5G时代的来临,企业的数字化转型步伐日益加快,视频短信作为新兴的数字营销工具,正逐步展现出其大的潜力。视频群发短信以其独特的形式和内容,将图片、文字、视频、声音融为一体,为用户带来全新的直观感受,为企业营销注入新的活力。 支持免费对接试用乐讯通PaaS平台 找好用的短信平台,选择乐讯通,短信群发|短信平台|群发短信软件|群发短信平台|乐讯通PaaS平台http://yun.loktong

socket函数接收发送详解

http://blog.csdn.net/g_brightboy/article/details/12854117 http://blog.csdn.net/liangkaiyang/article/details/5931901 send。。。 这里只描述同步Socket的send函数的执行流程。 当调用该函数时,send先比较待发送数据的长度

zabbix-高级应用(主被动监控、邮件告警、企业微信告警)

文章目录 zabbix-高级应用监控路由器交换机SNMP简单网络管理协议测试案例配置网络设备创建主机创建监控项测试监控项 自动发现什么是自动发现Discovery?配置自动发现1、创建自动发现规则2、创建Action动作(发现主机后自动执行什么动作)3、通过动作,执行添加主机,链接模板到主机等操作4、测试,创建新的虚拟机(符合发现规则) 主被动监控1、概述2、创建被监控主机(主动监控)