導航:首頁 > 編程語言 > java獲取郵件

java獲取郵件

發布時間:2023-09-08 05:29:20

1. java怎麼獲取郵件內容

給你一個參考,很詳細,你只需要對照看下獲取郵件內容的那部分就可以了。
http://blog.csdn.net/xyang81/article/details/7675160

2. java email怎麼獲取收件箱已發送已刪除中的郵件 csdn

其實刪除郵件很簡單,在接收郵件的基礎上對需要刪除的郵件做一個標記(Flags類),然後程序就會對有做了標記的郵件進行刪除。
在Flags類的內部類Flag中預定義了一些標志:
Flags.Flag.ANSWERED
Flags.Flag.DELETED (刪除的標記,這一講我們就要用到這個標記)
Flags.Flag.DRAFT
Flags.Flag.FLAGGED
Flags.Flag.RECENT
Flags.Flag.SEEN
Flags.Flag.USER

刪除郵件:message[i].setFlag(Flags.Flag.DELETED, true);

講到這里我想大家都已經想到刪除一封郵件的程序到底怎樣寫了。
不過有一點要注意的,上一講我們打開Folder的時候是用READ_ONLY,當然讀文件用READ_ONLY是做夠的,但是我要這一講要做的操作時刪除文件,READ_ONLY是沒有刪除郵件的許可權,所以我們要改為READ_WRITE。
如果要檢查某個郵件是否標記了Flags.Flag.DELETED,可以使用message[i].isSet(Flags.Flag DELETED)

注意:這個刪除操作是將郵件徹底刪除的,大家要謹慎使用,務必讀懂代碼再進行操作。不小心刪除了重要的郵件,小弟不負責人哦,(*^__^*) 嘻嘻……
這個只是一個很簡單的刪除郵件,在現實中我們會考慮到刪除郵件後會將郵件移動另外一個目錄下(如已刪除、垃圾箱),這些功能我會在後面會講!
給個例子大家參考:
import Java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;

import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;

public class DelMail {

public static void main(String[] args) throws Exception {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props);
//取得pop3協議的郵件伺服器
Store store = session.getStore("pop3");
//連接pop.qq.com郵件伺服器
store.connect("pop.qq.com", "[email protected]", "******");
//返回文件夾對象
Folder folder = store.getFolder("INBOX");
//設置讀寫
folder.open(Folder.READ_WRITE);
//獲取信息
Message message[] = folder.getMessages();

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

for(int i=0; i<message.length; i++) {
System.out.println(i + ": " + message[i].getFrom()[0] + "\t" + message[i].getSubject());
System.out.println("Do you want to delete message? [YES to delete]");
String line = br.readLine();
if(line.equals("YES")) {
//設置刪除標記
message[i].setFlag(Flags.Flag.DELETED, true);
}
}

folder.close(true);
store.close();
}
}

程序最後folder.close(true)執行了才會生效!

3. Java收發郵件過程中具體的功能是怎麼實現的

1.SMTP協議

用戶連上郵件伺服器後,要想給它發送一封電子郵件,需要遵循一定的通迅規則,SMTP協議就是用於定義這種通訊規則的。

因而,通常我們也把處理用戶smtp請求(郵件發送請求)的郵件伺服器稱之為SMTP伺服器。(25)

2.POP3協議

同樣,用戶若想從郵件伺服器管理的電子郵箱中接收一封電子郵件的話,他連上郵件伺服器後,也需要遵循一定的通迅格式,POP3協議用於定義這種通訊格式。

因而,通常我們也把處理用戶pop3請求(郵件接收請求)的郵件伺服器稱之為POP3伺服器。(110)


下圖用於演示兩帳戶相互發送郵件的過程

packagecn.e.dlmu.send;

importjava.util.Properties;

importjavax.activation.DataHandler;
importjavax.activation.FileDataSource;
importjavax.mail.Message;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeBodyPart;
importjavax.mail.internet.MimeMessage;
importjavax.mail.internet.MimeMultipart;
importjavax.mail.internet.MimeUtility;

publicclassSendMail{

publicstaticvoidmain(String[]args)throwsException{



Propertiesprop=newProperties();
//連接的郵件伺服器的主機名
prop.setProperty("mail.smtp.host","smtp.sina.com.cn");
//發送郵件的協議
prop.setProperty("mail.transport.protocol","smtp");
//是否向郵件伺服器提交認證
prop.setProperty("mail.smtp.auth","true");

//創建session
Sessionsession=Session.getInstance(prop);
session.setDebug(true);
//得到transport
Transportts=session.getTransport();
//連接郵件伺服器
ts.connect("smtp.sina.com.cn","[email protected]","xxxxx");
//發送郵件
MimeMessagemessage=createMessage(session);
ts.sendMessage(message,message.getAllRecipients());
ts.close();
}

(Sessionsession)throwsException{

MimeMessagemessage=newMimeMessage(session);

//設置郵件的基本信息
message.setFrom(newInternetAddress("[email protected]"));
message.setRecipient(Message.RecipientType.TO,newInternetAddress("[email protected]"));
message.setSubject("test");

//正文
MimeBodyParttext=newMimeBodyPart();
//設置charaset可以解決中文正文的亂碼問題,內嵌可下載的圖片
text.setContent("你好xxx,<imgsrc='c:/dog.jpg'/>測試成功!<br/><imgsrc='cid:aaa.jpg'/>","text/html;charset=gbk");
//圖片1
MimeBodyPartimage=newMimeBodyPart();
image.setDataHandler(newDataHandler(newFileDataSource("src/88.jpg")));
image.setContentID("aaa.jpg");
//附件
MimeBodyPartattach=newMimeBodyPart();
DataHandlerdh=newDataHandler(newFileDataSource("src/javamail架包.jar"));
attach.setDataHandler(dh);
//解決文件中文亂碼問題
attach.setFileName(MimeUtility.encodeText(dh.getName()));

//描述正文和圖片的關系
MimeMultipartmp=newMimeMultipart();
mp.addBodyPart(text);
mp.addBodyPart(image);
mp.setSubType("related");

//描述正文和附件
MimeMultipartmp2=newMimeMultipart();
mp2.addBodyPart(attach);
//將正文封裝為一個body
MimeBodyPartcontent=newMimeBodyPart();
content.setContent(mp);

mp2.addBodyPart(content);
mp2.setSubType("mixed");

message.setContent(mp2);
message.saveChanges();

returnmessage;
}

}

閱讀全文

與java獲取郵件相關的資料

熱點內容
賓士smart車型壓縮機功率 瀏覽:525
伺服器預留地址獲取 瀏覽:1002
雲庫文件夾怎麼設置 瀏覽:293
文件夾目錄製作自動跳轉 瀏覽:452
在哪個音樂app能聽exo的歌 瀏覽:847
pdf超級加密 瀏覽:47
蘋果手機app安裝包怎麼解壓並安裝 瀏覽:905
中原30系統源碼 瀏覽:184
程序員如何遵紀守法 瀏覽:499
java的webxml配置 瀏覽:962
如何封包遠程注入伺服器 瀏覽:864
監測機構資金動向源碼 瀏覽:967
android狀態欄字體50 瀏覽:767
python如何判斷文件後綴 瀏覽:126
龍空app哪裡下 瀏覽:348
阿里雲伺服器搭建網盤 瀏覽:691
京東軟體程序員 瀏覽:806
php游戲伺服器框架 瀏覽:392
導航開發演算法 瀏覽:432
為什麼30歲還想轉行程序員 瀏覽:380