具体思路:
1、申请企业微信。
2、在企业微信创建一个邮箱。
3、自建第三方应用。
4、从第三方应用,获取“Secret”值。
5、在第三方应用中,建立企业可信IP。
6、获取企业corpid。
7、写java代码,获取access_token。 参考:开始开发 - 接口文档 - 企业微信开发者中心
8、继续写代码,或者postman调用,发邮件。
具体内容:
1、申请企业微信。
2、在企业微信创建一个邮箱。
3、自建第三方应用。
4、从第三方应用,获取“Secret”值。
5、在第三方应用中,建立企业可信IP,这个就是发邮件的服务器的IP,或者Java代码运行的ip,一般开发环境,采取获取本机IP即可。注意,先要设置一个域名,然后再设置IP白名单。 这里很重要!没这个,发邮件调用没用。
6、获取企业corpid。
7、写java代码,获取access_token。 参考:开始开发 - 接口文档 - 企业微信开发者中心
//package com.test;
import com.mysql.cj.xdevapi.JsonParser;
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
/**
* 基于HttpsURLConnection实现客户端https请求
*
*/
public class Main {
private static final String METHOD_GET = "GET";
private static final String METHOD_POST = "POST";
/**
* doGet
*/
private static void httpsGet(String url) throws NoSuchAlgorithmException, KeyManagementException, IOException {
// 创建连接对象
HttpsURLConnection connection = getHttpsURLConnection(url, METHOD_GET);
connection.addRequestProperty("","");
connection.connect();
// System.out.println("cipersuit used:>>" + connection.getCipherSuite()+"<<");
// 读取连接响应内容
getresponse(connection);
}
/**
* doPost
*/
private static void httpsPost(String url, String params) throws NoSuchAlgorithmException, IOException, KeyManagementException {
// 创建连接对象
HttpsURLConnection connection = getHttpsURLConnection(url, METHOD_POST);
// 发送POST请求必须设置如下两行
connection.setDoOutput(true);
connection.setDoInput(true);
connection.connect();
// 获取URLConnection对象对应的输出流
PrintWriter out = null;
try {
out = new PrintWriter(connection.getOutputStream());
// 发送请求参数
out.print(params);
out.flush();
} finally {
if (out != null) {
out.close();
}
}
getresponse(connection);
}
/**
* 读取连接响应内容
*/
private static void getresponse(HttpsURLConnection connection) throws IOException {
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
String inputLine;
StringBuilder sb = new StringBuilder();
while ((inputLine = br.readLine()) != null) {
sb.append(inputLine);
}
System.out.println("response:>>>"+sb.toString()+"<<<");
System.out.println("responseMsg:>>" + connection.getResponseMessage() + "<<");
System.out.println("responseCode:" + connection.getResponseCode());
} finally {
if (br != null) {
br.close();
}
}
}
private void parseJSONWithJSONObject(String JsonData) {
try {
// JsonParser parse =new JsonParser(); //创建json解析器
// try {
// JsonObject json=(JsonObject) parse.parse(new FileReader("weather.json")); //创建jsonObject对象
// System.out.println("resultcode:"+json.get("resultcode").getAsInt()); //将json数据转为为int型的数据
// System.out.println("reason:"+json.get("reason").getAsString()); //将json数据转为为String型的数据
//
// System.out.println("id" + id + ";name" + name + ";version" + version);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取连接对象
*/
private static HttpsURLConnection getHttpsURLConnection(String url, String method) throws IOException, NoSuchAlgorithmException, KeyManagementException {
URL myUrl = new URL(url);
// 创建连接对象
HttpsURLConnection connection = (HttpsURLConnection) myUrl.openConnection();
connection.setRequestMethod(method);
// 设置SSLSocketFactory对象(若不指定算法套,getSslContext().getSocketFactory()即可)
connection.setSSLSocketFactory(new MySSLSocketFactory());
// 验证hostname,全部允许
connection.setHostnameVerifier((hostname, sslSession) -> true);
// 设置通用请求属性
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Charset", "UTF-8");
return connection;
}
public static void main(String[] args) throws Exception {
String corpid="wwc8c90a0acd";
String corpsecret="6jvihNh6un_nx8rtnjo";
String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret;
// String access_token = "";
// String url = "https://qyapi.weixin.qq.com/cgi-bin/exmail/app/compose_send?access_token="+access_token;
httpsGet(url);
}
}
运行结果:
8、继续写代码,或者postman调用,发邮件。