1. 程式人生 > >javaMail使用imap協議接收郵件

javaMail使用imap協議接收郵件

在這裡說明一下,pop3和imap協議都是接收郵件的,但是他們還是有很多不同的。
IMAP和POP有什麼區別?
POP允許電子郵件客戶端下載伺服器上的郵件,但是您在電子郵件客戶端的操作(如:移動郵件、標記已讀等),這是不會反饋到伺服器上的,比如:您通過電子郵件客戶端收取了QQ郵箱中的3封郵件並移動到了其他資料夾,這些移動動作是不會反饋到伺服器上的,也就是說,QQ郵箱伺服器上的這些郵件是沒有同時被移動的 。但是IMAP就不同了,電子郵件客戶端的操作都會反饋到伺服器上,您對郵件進行的操作(如:移動郵件、標記已讀等),伺服器上的郵件也會做相應的動作。也就是說,IMAP是“雙向”的。
同時,IMAP可以只下載郵件的主題,只有當您真正需要的時候,才會下載郵件的所有內容。

上程式碼:

package cn.com;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import com.sun.mail.imap.IMAPFolder
; import com.sun.mail.imap.IMAPStore; public class ImapFetchMail { public static void main(String[] args) { String host = "imap.qq.com"; int port = 993; String username = "[email protected]"; String password = "dengzhiyuanaiyuer"; final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"
; Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); /* Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); 這裡有一個錯我是這麼解決的(Windows -> Preferences,Java/Compiler/Errors/Warnings-> Deprecated and restricted API, Forbidden reference (access rules),原始設定為Error修改為Warning)*/ Properties props = System.getProperties(); props.setProperty("mail.imap.socketFactory.class", SSL_FACTORY); props.setProperty("mail.imap.socketFactory.port","993"); props.setProperty("mail.store.protocol","imap"); props.setProperty("mail.imap.host", host); props.setProperty("mail.imap.port", "993"); props.setProperty("mail.imap.auth.login.disable", "true"); Session session = Session.getDefaultInstance(props,null); session.setDebug(false); IMAPFolder folder= null; IMAPStore store=null; try { store=(IMAPStore)session.getStore("imap"); // 使用imap會話機制,連線伺服器 store.connect(host,port,username,password); folder=(IMAPFolder)store.getFolder("Sent Messages"); //收件箱 Folder defaultFolder = store.getDefaultFolder(); Folder[] allFolder = defaultFolder.list(); for (int i = 0; i < allFolder.length; i++) { System.out.println("這個是伺服器中的資料夾="+allFolder[i].getFullName()); } // 使用只讀方式開啟收件箱 folder.open(Folder.READ_WRITE); int size = folder.getMessageCount(); System.out.println("這裡是列印的條數=="+size); Message[] mess=folder.getMessages(); // Message message = folder.getMessage(size); for (int i = 0; i <5; i++) { String from = mess[i].getFrom()[0].toString(); String subject = mess[i].getSubject(); Date date = mess[i].getSentDate(); System.out.println("From: " + from); System.out.println("Subject: " + subject); System.out.println("Date: " + date); } /* String from = message.getFrom()[0].toString(); String subject = message.getSubject(); Date date = message.getSentDate();*/ /* BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); */ } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } finally { try { if (folder != null) { folder.close(false); } if (store != null) { store.close(); } } catch (MessagingException e) { e.printStackTrace(); } } System.out.println("接收完畢!"); } }

相關推薦

javaMail使用imap協議接收郵件

在這裡說明一下,pop3和imap協議都是接收郵件的,但是他們還是有很多不同的。 IMAP和POP有什麼區別? POP允許電子郵件客戶端下載伺服器上的郵件,但是您在電子郵件客戶端的操作(如:移動郵件、標記已讀等),這是不會反饋到伺服器上的,比如:您通過電子郵

命令列傳送接收郵件smtp、pop3協議-計網(3)

前言 學習郵件系統的相關知識後,實際操作一下。應用一下具體的命令列。 正文 要看看我計算機網路應用層基礎總結的這裡 smtp協議 常見命令 命令列 作用

JavaMail系列(四) 使用POP3協議接收並解析電子郵件

package org.yangxin.study.jm;  import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.i

JavaMail系列(五) 使用IMAP協議接收並解析電子郵件

package org.yangxin.study.jm;  import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Properties;  import javax

javamail接收郵件(zt)

messages code internet multi exceptio ora pen cati lai zt from:http://xiangzhengyan.iteye.com/blog/85961 import <a href="http://lib

Outlook2016 自動接收郵件的設置

utl 時間 接收 ima com png -s span mil 在這個選項裏就可以設置郵件的接收時間了Outlook2016 自動接收郵件的設置

郵件實現詳解(四)------JavaMail 發送(帶圖片和附件)和接收郵件

發送 網絡圖 發送對象 true n) com 訪問權限 sub map   好了,進入這個系列教程最主要的步驟了,前面郵件的理論知識我們都了解了,那麽這篇博客我們將用代碼完成郵件的發送。這在實際項目中應用的非常廣泛,比如註冊需要發送郵件進行賬號激活,再比如OA項目中利用郵

dovecot並發數造成foxmail、outlook等客戶端工具接收郵件有時候報錯

ash als stat class false limit var proc net 問題:dovecot並發數造成foxmail、outlook等客戶端工具接收郵件有時候報錯,頻繁點收取郵件報錯。/var/log/maillog日誌有大量的報錯:Jan 24 14:01

dovecot vsz_limit參造成foxmail、outlook等客戶端工具接收郵件有時候報錯

客戶 大量 fat foxmail 解決 ase toolbar ron memory 問題:dovecot並發數造成foxmail、outlook等客戶端工具接收郵件有時候報錯,關閉客戶端工具後又可以了。/var/log/maillog日誌有大量的報錯:Jan 25 08

Exchange 2016邊緣傳輸服務器設置接收郵件大小

邊緣傳輸服務器設置接收郵件大小下面命令是設置接收郵件大小為 300MB Get-ReceiveConnector | Set-ReceiveConnector -MaxMessageSize 314572800 Exchange 2016邊緣傳輸服務器設置接收郵件大小

JavaMail傳送和接收郵件(轉載)

出處: http://blog.csdn.net/zapldy/article/details/3971579 一、JavaMail概述:        JavaMail是由Sun定義的一套收發電子郵

Python基於tkinter傳送和接收郵件

一、效果演示 二、傳送郵件程式碼 import smtplib import tkinter class Window: def __init__(self,root): label1 = tkinter.Label(root,text='SMTP

JavaMail傳送和接收郵件API

一、JavaMail概述:     JavaMail是由Sun定義的一套收發電子郵件的API,不同的廠商可以提供自己的實現類。但它並沒有包含在JDK中,而是作為JavaEE的一部分。     廠商所提供的JavaMail服務程式可以有選擇地實現某些郵件協議,常見的郵件協議包括: SMTP:簡單

臨時郵箱可接收郵件 注意是臨時的!!

2018年11月12日 15:11:50 GodTyler 閱讀數:5 個人分類: ž雜貨

Java mail 傳送接收郵件

文字郵件:package mypack; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.S

使用 receiveMail 接收郵件

第一步:目錄級別 /mailreceived/mailControl.php <? /* * File: mailControl.php * Description: Received Mail Example * Created: 03-06-2015 * Author:

pop協議郵件密碼嗅探 使用說明

    思路與原始碼 可以檢視 https://www.cnblogs.com/likehc/p/10140174.html   因為軟體用的是Wincap,所以  第一步安裝下 WinPcap       第二步,開啟

c語言利用SMTP協議傳送郵件

#ifdef WIN32 #include <windows.h> #include <stdio.h> #else #include <stdio.h> #include <sys/types.h> #include

圖解使用telnet程式手工接收郵件及其過程

郵件的接收使用了 POP3 (Post Office Protocol ,郵局協議)協議。POP3 協議定義了郵件客戶端程式與 POP3 伺服器進行通訊以獲得郵件相關內容的具體規則和細節。 POP3 協議類似於 SMTP 協議,它定義了一些命令用於管理郵箱等具體操作,為

C++ 使用smtp協議傳送郵件的簡單實現

心血來潮,簡單實現一個傳送郵件的小程式, 首先實現一個簡單的socket類 標頭檔案 #ifndef _CSOCKET_H_ #define _CSOCKET_H_ #include <sys/socket.h> #include <arpa/inet