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