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;
}
}