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

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

相关文章

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

redis防止短信恶意调用的实现

《redis防止短信恶意调用的实现》本文主要介绍了在场景登录或注册接口中使用短信验证码时遇到的恶意调用问题,并通过使用Redis分布式锁来解决,具有一定的参考价值,感兴趣的可以了解一下... 目录1.场景2.排查3.解决方案3.1 Redis锁实现3.2 方法调用1.场景登录或注册接口中,使用短信验证码场

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修