天天看点

java调用QQ邮箱发送邮件

java调用QQ邮箱发送邮件

首先导入maven

<!-- JSON-->
<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>2.0.0</version>
    </dependency>
<!-- 邮箱 -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

<!-- 定时任务 -->
<dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.1</version>
  </dependency>
  <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz-jobs</artifactId>
      <version>2.2.1</version>
  </dependency>
           
获取城市ID号
或直接访问 http://www.wendangku.net/doc/461567915a8102d277a22f10.html 查看

北京:101010100朝阳:101010300顺义:101010400怀柔:101010500通州:101010600昌平:101010700延庆:101010800丰台:101010900石景山:101011000
大兴:101011100房山:101011200密云:101011300门头沟:101011400平谷:101011500八达岭:101011600佛爷顶:101011700汤河口:101011800
密云上甸子:101011900斋堂:101012000霞云岭:101012100北京城区:101012200海淀:101010200天津:101030100宝坻:101030300东丽:101030400
西青:101030500北辰:101030600蓟县:101031400汉沽:101030800静海:101030900津南:101031000塘沽:101031100大港:101031200武清:101030200
宁河:101030700上海:101020100宝山:101020300嘉定:101020500南汇:101020600浦东:101021300青浦:101020800松江:101020900奉贤:101021000
崇明:101021100徐家汇:101021200闵行:101020200金山:101020700石家庄:101090101张家口:101090301承德:101090402唐山:101090501
秦皇岛:101091101沧州:101090701衡水:101090801邢台:101090901邯郸:101091001保定:101090201廊坊:101090601郑州:101180101新乡:101180301
许昌:101180401平顶山:101180501信阳:101180601南阳:101180701开封:101180801洛阳:101180901商丘:101181001焦作:101181101鹤壁:101181201
濮阳:101181301周口:101181401漯河:101181501驻马店:101181601三门峡:101181701济源:101181801安阳:101180201合肥:101220101芜湖:101220301
淮南:101220401马鞍山:101220501安庆:101220601宿州:101220701阜阳:101220801亳州:101220901黄山:101221001滁州:101221101淮北:101221201
铜陵:101221301宣城:101221401六安:101221501巢湖:101221601池州:101221701蚌埠:101220201杭州:101210101舟山:101211101湖州:101210201
嘉兴:101210301金华:101210901绍兴:101210501台州:101210601温州:101210701丽水:101210801衢州:101211001宁波:101210401重庆:101040100
合川:101040300南川:101040400江津:101040500万盛:101040600渝北:101040700北碚:101040800巴南:101040900长寿:101041000黔江:101041100
万州天城:101041200万州龙宝:101041300涪陵:101041400开县:101041500城口:101041600云阳:101041700巫溪:101041800奉节:101041900
巫山:101042000潼南:101042100垫江:101042200梁平:101042300忠县:101042400石柱:101042500大足:101042600荣昌:101042700铜梁:101042800
璧山:101042900丰都:101043000武隆:101043100彭水:101043200綦江:101043300酉阳:101043400秀山:101043600沙坪坝:101043700永川:101040200
福州:101230101泉州:101230501漳州:101230601龙岩:101230701晋江:101230509南平:101230901厦门:101230201宁德:101230301莆田:101230401
三明:101230801兰州:101160101平凉:101160301庆阳:101160401武威:101160501金昌:101160601嘉峪关:101161401酒泉:101160801天水:101160901
武都:101161001临夏:101161101合作:101161201白银:101161301定西:101160201张掖:101160701广州:101280101惠州:101280301梅州:101280401
汕头:101280501深圳:101280601珠海:101280701佛山:101280800肇庆:101280901湛江:101281001江门:101281101河源:101281201清远:101281301
云浮:101281401潮州:101281501东莞:101281601中山:101281701阳江:101281801揭阳:101281901茂名:101282001汕尾:101282101韶关:101280201
南宁:101300101柳州:101300301来宾:101300401桂林:101300501梧州:101300601防城港:101301401贵港:101300801玉林:101300901百色:101301001
钦州:101301101河池:101301201北海:101301301崇左:101300201贺州:101300701贵阳:101260101安顺:101260301都匀:101260401兴义:101260906
铜仁:101260601毕节:101260701六盘水:101260801遵义:101260201凯里:101260501昆明:101290101红河:101290301文山:101290601玉溪:101290701
楚雄:101290801普洱:101290901昭通:101291001临沧:101291101怒江:101291201香格里拉:101291301丽江:101291401德宏:101291501景洪:101291601
大理:101290201曲靖:101290401保山:101290501呼和浩特:101080101乌海:101080301集宁:101080401通辽:101080501阿拉善左旗:101081201
鄂尔多斯:101080701临河:101080801锡林浩特:101080901呼伦贝尔:101081000乌兰浩特:101081101包头:101080201赤峰:101080601南昌:101240101
上饶:101240301抚州:101240401宜春:101240501鹰潭:101241101赣州:101240701景德镇:101240801萍乡:101240901新余:101241001九江:101240201
吉安:101240601武汉:101200101黄冈:101200501荆州:101200801宜昌:101200901恩施:101201001十堰:101201101神农架:101201201随州:101201301
荆门:101201401天门:101201501仙桃:101201601潜江:101201701襄樊:101200201鄂州:101200301孝感:101200401黄石:101200601咸宁:101200701
成都:101270101自贡:101270301绵阳:101270401南充:101270501达州:101270601遂宁:101270701广安:101270801巴中:101270901泸州:101271001
宜宾:101271101内江:101271201资阳:101271301乐山:101271401眉山:101271501凉山:101271601雅安:101271701甘孜:101271801阿坝:101271901
德阳:101272001广元:101272101攀枝花:101270201银川:101170101中卫:101170501固原:101170401石嘴山:101170201吴忠:101170301
西宁:101150101黄南:101150301海北:101150801果洛:101150501玉树:101150601海西:101150701海东:101150201海南:101150401济南:101120101
潍坊:101120601临沂:101120901菏泽:101121001滨州:101121101东营:101121201威海:101121301枣庄:101121401日照:101121501莱芜:101121601
聊城:101121701青岛:101120201淄博:101120301德州:101120401烟台:101120501济宁:101120701泰安:101120801西安:101110101延安:101110300
榆林:101110401铜川:101111001商洛:101110601安康:101110701汉中:101110801宝鸡:101110901咸阳:101110200渭南:101110501太原:101100101
临汾:101100701运城:101100801朔州:101100901忻州:101101001长治:101100501大同:101100201阳泉:101100301晋中:101100401晋城:101100601
吕梁:101101100乌鲁木齐:101130101石河子:101130301昌吉:101130401吐鲁番:101130501库尔勒:101130601阿拉尔:101130701阿克苏:101130801
喀什:101130901伊宁:101131001塔城:101131101哈密:101131201和田:101131301阿勒泰:101131401阿图什:101131501博乐:101131601
克拉玛依:101130201拉萨:101140101山南:101140301阿里:101140701昌都:101140501那曲:101140601日喀则:101140201林芝:101140401
台北县:101340101高雄:101340201台中:101340401海口:101310101三亚:101310201东方:101310202临高:101310203澄迈:101310204儋州:101310205
昌江:101310206白沙:101310207琼中:101310208定安:101310209屯昌:101310210琼海:101310211文昌:101310212保亭:101310214万宁:101310215
陵水:101310216西沙:101310217南沙岛:101310220乐东:101310221五指山:101310222琼山:101310102长沙:101250101株洲:101250301
衡阳:101250401郴州:101250501常德:101250601益阳:101250700娄底:101250801邵阳:101250901岳阳:101251001张家界:101251101怀化:101251201
黔阳:101251301永州:101251401吉首:101251501湘潭:101250201南京:101190101镇江:101190301苏州:101190401南通:101190501扬州:101190601
宿迁:101191301徐州:101190801淮安:101190901连云港:101191001常州:101191101泰州:101191201无锡:101190201盐城:101190701
哈尔滨:101050101牡丹江:101050301佳木斯:101050401绥化:101050501黑河:101050601双鸭山:101051301伊春:101050801大庆:101050901
七台河:101051002鸡西:101051101鹤岗:101051201齐齐哈尔:101050201大兴安岭:101050701长春:101060101延吉:101060301四平:101060401
白山:101060901白城:101060601辽源:101060701松原:101060801吉林:101060201通化:101060501沈阳:101070101鞍山:101070301抚顺:101070401
本溪:101070501丹东:101070601葫芦岛:101071401营口:101070801阜新:101070901辽阳:101071001铁岭:101071101朝阳:101071201盘锦:101071301
大连:101070201锦州:101070701
           
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class TestDemo {

	private final static String JOB_GROUP_NAME = "QUARTZ_JOBGROUP_NAME";// 任务组
	private final static String TRIGGER_GROUP_NAME = "QUARTZ_TRIGGERGROUP_NAME";// 触发器组
	private static Logger log = LoggerFactory.getLogger(MyJob.class);// 日志
	//输入自己的QQ邮箱
	private final static String sender = "[email protected]";
	// 填写自己邮箱授权码
	//QQ邮箱授权码在->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 --->POP3/SMTP服务 开启就可以得到授权码
	private final static String senderVerfirycode = "tegflknahasfjhkchf";

	public static void main(String[] args) {
		try {
		//调用文案接口 全部是随机的
			String sendGet = doGet("https://api.xygeng.cn/one");

			JSONObject parseObject = JSON.parseObject(sendGet);
			log.info("文案 :" + parseObject);
			JSONObject jsonObject = (JSONObject) parseObject.get("data");
			String content = (String) jsonObject.get("content");
			//调用天气接口   101090101 是城市ID
			String sendGet2 = doGet("http://t.weather.itboy.net/api/weather/city/101090101");// new
																								// HashMap<>());
			JSONObject object = JSON.parseObject(sendGet2);
			JSONObject object2 = (JSONObject) object.get("data");
			String ganmao = (String) object2.get("ganmao");
			JSONArray object3 = (JSONArray) object2.get("forecast");
			JSONObject entity = (JSONObject) object3.get(0);
			String date = (String) entity.get("ymd");
			String high = (String) entity.get("high");
			String sunrise = (String) entity.get("sunrise");
			String sunset = (String) entity.get("sunset");
			String week = (String) entity.get("week");
			String low = (String) entity.get("low");
			String fx = (String) entity.get("fx");
			String fl = (String) entity.get("fl");
			String type = (String) entity.get("type");
			String notice = (String) entity.get("notice");
			String weather = "温馨提示:" + ganmao + "	今日时间:" + date + "<br>	天气:" + type + "  气温:" + high + "~" + low
					+ "  日出:" + sunrise + " 日落:" + sunset + "<br> 风向:" + fx + fl + " " + week + "<br>" + notice;
			//填写需要发送的邮箱
			sendQQEmail("[email protected]", "来自于清晨的问侯", "<br>" + weather + "<br><h2>" + content + "</h2>");
			log.info("文件发送成功 !");
		} catch (Exception e) {
			log.error(e.getMessage());
		}
	}

	public static String doPost(String URL) {
		OutputStreamWriter out = null;
		BufferedReader in = null;
		StringBuilder result = new StringBuilder();
		HttpURLConnection conn = null;
		try {
			URL url = new URL(URL);
			conn = (HttpURLConnection) url.openConnection();
			conn.setRequestMethod("POST");
			// 发送POST请求必须设置为true
			conn.setDoOutput(true);
			conn.setDoInput(true);
			// 设置连接超时时间和读取超时时间
			conn.setConnectTimeout(30000);
			conn.setReadTimeout(10000);
			conn.setRequestProperty("Content-Type", "application/json");
			conn.setRequestProperty("Accept", "application/json");
			// 获取输出流
			out = new OutputStreamWriter(conn.getOutputStream());
			String jsonStr = "{\"qry_by\":\"name\", \"name\":\"Tim\"}";
			out.write(jsonStr);
			out.flush();
			out.close();
			// 取得输入流,并使用Reader读取
			if (200 == conn.getResponseCode()) {
				in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
				String line;
				while ((line = in.readLine()) != null) {
					result.append(line);
					System.out.println(line);
				}
			} else {
				System.out.println("ResponseCode is an error code:" + conn.getResponseCode());
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (out != null) {
					out.close();
				}
				if (in != null) {
					in.close();
				}
			} catch (IOException ioe) {
				ioe.printStackTrace();
			}
		}
		return result.toString();
	}

	public static String doGet(String URL) {
		HttpURLConnection conn = null;
		InputStream is = null;
		BufferedReader br = null;
		StringBuilder result = new StringBuilder();
		try {
			// 创建远程url连接对象
			URL url = new URL(URL);
			// 通过远程url连接对象打开一个连接,强转成HTTPURLConnection类
			conn = (HttpURLConnection) url.openConnection();
			conn.setRequestMethod("GET");
			// 设置连接超时时间和读取超时时间
			conn.setConnectTimeout(15000);
			conn.setReadTimeout(60000);
			conn.setRequestProperty("Accept", "application/json");
			// 发送请求
			conn.connect();
			// 通过conn取得输入流,并使用Reader读取
			if (200 == conn.getResponseCode()) {
				is = conn.getInputStream();
				br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
				String line;
				while ((line = br.readLine()) != null) {
					result.append(line);
					System.out.println(line);
				}
			} else {
				System.out.println("ResponseCode is an error code:" + conn.getResponseCode());
			}
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
				if (is != null) {
					is.close();
				}
			} catch (IOException ioe) {
				ioe.printStackTrace();
			}
			conn.disconnect();
		}
		return result.toString();
	}

	public static void sendQQEmail(String reciver, String subject, String content) {

		Properties properties = System.getProperties();
		// 连接协议
		properties.put("mail.transport.protocol", "smtp");
		// 验证权限
		properties.put("mail.smtp.auth", "true");
		// qq是smtp.qq.com
		properties.put("mail.smtp.host", "smtp.qq.com");
		// ssl邮箱端口
		properties.put("mail.smtp.socketFactory.port", 465);
		// 设置是否使用ssl安全连接
		properties.put("mail.smtp.starttls.enable", "true");
		Session session = Session.getDefaultInstance(properties, new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(sender, senderVerfirycode); // 发件人邮件用户名、授权码
			}
		});

		session.setDebug(true);

		try {
			MimeMessage mes = new MimeMessage(session);

			mes.setFrom(new InternetAddress(sender));

			mes.addRecipient(Message.RecipientType.TO, new InternetAddress(reciver));

			mes.setSubject(subject);

			mes.setContent("<h2>又是崭新的一天!</h2><br>" + content, "text/html;charset=utf-8");

			Transport.send(mes);
			System.out.println("===========Successed===========");
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}

}
           
java调用QQ邮箱发送邮件

继续阅读