1. 程式人生 > >java 傳送郵件和讀取郵件(163郵箱為例)

java 傳送郵件和讀取郵件(163郵箱為例)

1,傳送郵件

(1)在設定裡面開啟163郵箱的smtp、pop3,設定授權碼

(2)在引用pom.xml中引用mail.jar

<dependency >  
      <groupId >com.sun.mail </groupId >  
      <artifactId >javax.mail </artifactId >  
      <version >1.5.4 </version >  
</dependency >
(3)郵件內容不要亂寫,否則失敗
public class TestJava {
	public static void main(String[] args) throws MessagingException {
		Properties prop=new Properties();
		prop.put("mail.host","smtp.163.com" );
		prop.put("mail.transport.protocol", "smtp");
		prop.put("mail.smtp.auth", true);
		//使用java傳送郵件5步驟
		//1.建立sesssion
		Session session=Session.getInstance(prop);
		//開啟session的除錯模式,可以檢視當前郵件傳送狀態
		session.setDebug(true);

		//2.通過session獲取Transport物件(傳送郵件的核心API)
		Transport ts=session.getTransport();
		//3.通過郵件使用者名稱密碼連結
		ts.connect("郵箱名", "授權碼");

		//4.建立郵件
		Message msg=createSimpleMail(session);

		//5.傳送電子郵件
		ts.sendMessage(msg, msg.getAllRecipients());
	}
	
	public static MimeMessage createSimpleMail(Session session) throws AddressException,MessagingException{
		//建立郵件物件
		MimeMessage mm=new MimeMessage(session);
		//設定發件人
		mm.setFrom(new InternetAddress(""));
		//設定收件人
		mm.setRecipient(Message.RecipientType.TO, new InternetAddress(""));
		//設定抄送人
		mm.setRecipient(Message.RecipientType.CC, new InternetAddress(""));

		mm.setSubject("第一封JAVA郵件!");
		mm.setContent("咱們開會吧", "text/html;charset=utf-8");

		return mm;
	}


}
程式碼引用:http://www.cnblogs.com/tptptptp/p/5874538.html

2,讀取郵件

import java.util.Properties;

import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;

import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPStore;

/**
 *  使用IMAP協議接收郵件
 * @author hj
 * @time 2017-07-20
 */
public class ReciveIMAPmail {
	public static void main(String[] args) {
        String imapserver = "imap.163.com"; // 郵件伺服器
        String user = "使用者名稱";
        String password = "授權碼";     // 根據自已的密碼修改
        // 獲取預設會話
        Properties prop = System.getProperties();
        prop.put("mail.imap.host",imapserver);
       
        prop.put("mail.imap.auth.plain.disable","true");
        Session mailsession=Session.getInstance(prop,null);
        mailsession.setDebug(false); //是否啟用debug模式
        IMAPFolder folder= null;
        IMAPStore store=null;
        int total= 0;
        try{
           store=(IMAPStore)mailsession.getStore("imap");  // 使用imap會話機制,連線伺服器
           store.connect(imapserver,user,password);
           folder=(IMAPFolder)store.getFolder("INBOX"); //收件箱 
           // 使用只讀方式開啟收件箱 
           folder.open(Folder.READ_WRITE);
           //獲取總郵件數
           total = folder.getMessageCount();
           System.out.println("-----------------您的郵箱共有郵件:" + total+" 封--------------");
           // 得到收件箱資料夾資訊,獲取郵件列表
           Message[] msgs =folder.getMessages();
           System.out.println("\t收件箱的總郵件數:" + msgs.length);  
           System.out.println("\t未讀郵件數:" + folder.getUnreadMessageCount());  
           System.out.println("\t新郵件數:" + folder.getNewMessageCount());  
           System.out.println("----------------End------------------");
        }
        catch(MessagingException ex){
             System.err.println("不能以讀寫方式開啟郵箱!");
             ex.printStackTrace();
        }finally {
        // 釋放資源
          try{
              if(folder!=null)
                  folder.close(true); //退出收件箱時,刪除做了刪除標識的郵件
             if (store != null)
                store.close();
            }catch(Exception bs){
             bs.printStackTrace();
            }             
        }          
    }
}

可能會報錯:

javax.mail.MessagingException: A3 NO SELECT Unsafe Login. Please contact [email protected] for help;

  nested exception is: 然後會收到郵件,開啟

進行手機驗證就OK;



相關推薦

java 傳送郵件讀取郵件163郵箱

1,傳送郵件 (1)在設定裡面開啟163郵箱的smtp、pop3,設定授權碼 (2)在引用pom.xml中引用mail.jar <dependency > <groupId >com.sun.mail </groupId &g

一、JAVA傳送簡單郵件QQ郵箱

以QQ郵箱為例 1.匯入jar包:## <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> &l

使用php發郵件開啟郵箱服務qq郵箱

1、進入你的QQ郵箱,進入賬戶介面 2、找到相應的服務,開啟服務,並獲取授權碼 這裡的意思是可以使用imap.qq.com作為郵件接收伺服器,smtp.qq.com作為郵件傳送伺服器。 以下摘自百度百科 POP3協議允許電子郵件客戶端下載伺服器上的郵件,但是在客戶端的

雲端計算生產環境架構效能調優遷移套路總結以 AWS

最近完成了一個雲端計算平臺應用的架構調優。客戶是一個 Wordpress + MySQL 的站點,剛從本地資料中心遷移到了 AWS,由於團隊技能限制,無法充分發揮雲端計算的優勢。加之應用程式在夜間高流量時段崩潰,架構優化和遷移迫在眉睫。本文以這次架構遷移經驗為例,介紹雲端計算架構優化遷移的基本步驟和

Java下載檔案以TIM

package download; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.URL;

Linux國內常用源的介紹使用Ubuntu16.04

Ubuntu16.04的”軟體和更新”中,自帶了“自動選擇最快速的源”的功能,所以現在說配置源,僅僅是瞭解。當然,如果說是為了手動配置ipv6的源,節約學校的流量,還是非常有必要的。 清華TU

技術乾貨丨Java Web本地提權以及資料劫持思路以Tomcat

最近偶然接觸到一個Java的不常用的特性:instrument。簡單來說,這個特性允許你在程式執行之前改變任意類檔案的位元組碼。 簡單的instrument例子大家可以百度,相當多。 而在執行Java程式的時候,只需要加上一個選項即可執行寫好的instrument jar包,如:java -javaa

Java萬用字元的個人理解以集合

二、泛型萬用字元講解  <一>萬用字元的使用以及程式碼演示       1.無限萬用字元<?>的使用:可以傳入任何引用資料型別 A 在呼叫方法時使用?萬用字元的過程中無法使用add方法。原因分析:因為萬用字元?代表任意的資料型別,但是當我們呼叫的時候或者用在方法的宣告上,其實這個

Java技術_基礎技術0002_中介軟體啟動class載入順序以tomcat

基礎技術: Tomcat的class載入的優先順序一覽 1.$JAVA_HOME/jre/lib/ext/下的jar檔案。 2.環境變數CLASSPATH中的jar和class檔案。

linux 下firefox chrome 瀏覽器安裝外掛以jre

step1:下載jre包jre-7u21-linux-i586.tar.gz step2:cp jre-7u21-linux-i586.tar.gz    /usr               tar xvzf jre-7u21-linux-i586.tar.gz s

H264碼流的打包傳送以live555

H.264 視訊 RTP 負載格式 1. 網路抽象層單元型別 (NALU) NALU 頭由一個位元組組成, 它的語法如下:       +---------------+       |0|1|2|3|4|5|6|7|       +-+-+-+-+-+-+-+-+    

通過JDBC進行簡單的增刪改查以MySQL

mage ron end main exce javax xtend 探索 rman 通過JDBC進行簡單的增刪改查(以MySQL為例) 目錄 前言:什麽是JDBC 一、準備工作(一):MySQL安裝配置和基礎學習 二、準備工作(二):下載數據庫對應的jar包並

自定義shell終端提示符及顏色 以Centos

工作目錄 con bashrc func global 目錄 藍色 顯示 inux Linux修改Shell命令提示符及顏色 1. Linux登錄過程中加載配置文件順序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_pro

11代碼重用思想以遊戲

class 我想 就是 cas == 點擊 ~~ 重用 body 1)情況說明:      假如 我想在我的遊戲上 顯示以惡搞菜單 然後這個菜單 顯示1和2           要是我用鼠標點擊1 ,就可以玩 貪吃蛇遊戲           要是我用鼠標點擊

Ajax數據的爬取淘女郎

gen exce on() version ref write charset 匹配 char mmtao Ajax數據的爬取(淘女郎為例) 如有疑問,轉到 Wiki 淘女郎模特抓取教程 網址:https://0x9.me/xrh6z 判斷一個頁面是不是 Ajax 加載

如何在redhat中安裝中文輸入法redhat7.3

桌面 智能拼音 出現 就會 AC 14. 文字 選項 輸入法 1.點擊桌面環境設置 2.點擊區域和語言選項 3.在輸入源中添加漢語拼音 4.配置成功後桌面環境就會出現這樣的一個標識 默認顯示為【zh】,表示中文的鍵盤,及英文字符輸入。 點擊更換“漢語(Intel

通過JDBC進行簡單的增刪改查以MySQL轉載

IE trac archive solver ttl 賦值 TP 定義 for 轉載:https://www.cnblogs.com/wuyuegb2312/p/3872607.html 目錄 前言:什麽是JDBC 一、準備工作(一):MySQL安裝配置和基礎學習 二、準備

阿裏雲修改主機名以centOS

主機 str name 按鍵 ID In 保存 ray ike 需要更改配置文件生效,修/etc/sysconfig/network裏的 HOSTNAME=主機名(可自定義),重啟生效。 如何修改? 1.[root@aliyunbaike ~]# cd /etc/sysco

PHPEmailer使用簡介以qq郵箱

reply Opens 安全 client 下載 attach 後來 問題: from 1、從網上下載PHPEmailer; 2、確保PHP環境支持sockets擴展,還要開啟openssl,如下圖: 3、配置QQ郵箱   1.開啟SMTP服務      2.驗證密保

OpenGL學習 著色器渲染以Android

back lse setw %d 編譯 clas ddr attr type 一、Android平臺上下文環境的創建及初始化 1. 首先實例化Android上下文環境,即EGL的初始化。 bool EGLCore::init(EGLContext sharedContex