Java Mail 發送郵件 接收郵件

 JavaMail包中的類比較多,主要用到的有會話類、地址類、郵件類、郵件發送類、郵件接收類和郵件文件夾類這些常用的類。
會話類(Session),主要用來創建郵件對象、實現郵件對象中數據的封裝並可指定郵件服務器認證的客戶端屬性。它表示程序與某一個郵件服務器即將建立通信,在建立的過程可以進行口令認證。
地址類(Address),這個地址類主要是表示郵件發送人和郵件接收人的地址,一般主要用的是InternetAddress。
郵件類(Message),郵件消息的主要類,它包含了郵件中的所有部分,繼承自一個接口Part,一般在使用的過程中直接是利用它的子類MimeMessage
郵件發送類(Transport),一般是從一個會話中獲取一個郵件發送類的實例,將已經寫好的郵件利用SMTP協議發送到指定的郵件服務器,在發送的過程中,首先根據指定口令連接到郵件服務器,再發送郵件。
郵件接收類(Store),這個其實就是郵件服務器中的存儲庫,裏面放着所有的郵件文件夾
郵件文件夾類(Folder),該文件夾就是消息的具體所在文件夾,默認的郵件均在INBOX文件中。

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MailSend {

	public static void main(String[] args) throws AddressException, MessagingException {
		 
				Properties props = new Properties();
				// 開啓debug調試
				props.setProperty("mail.debug", "true");
				// 發送服務器需要身份驗證
				props.setProperty("mail.smtp.auth", "true");
				// 設置郵件服務器主機名
				props.setProperty("mail.host", "smtp.126.com");
				// 發送郵件協議名稱
				props.setProperty("mail.transport.protocol", "smtp");
				
				// 設置環境信息
				Session session = Session.getInstance(props);
				
				// 創建郵件對象
				Message msg = new MimeMessage(session);
				msg.setSubject("JavaMail測試");
				// 設置郵件內容
				msg.setText("這是一封由JavaMail發送的郵件!");
				// 設置發件人
				msg.setFrom(new InternetAddress("you email address"));
				
				Transport transport = session.getTransport();
				// 連接郵件服務器
				transport.connect("account", "pwd");
				// 發送郵件
				transport.sendMessage(msg, new Address[] {new InternetAddress("[email protected]")});
				// 關閉連接
				transport.close();
		 
	}
}
javamail 下載鏈接http://down.51cto.com/data/810527

接收郵件,要用到Apache Commons Email

 

要不getSubject等方法會是null.

 

import java.io.IOException;
import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeMessage;

import org.apache.commons.mail.util.MimeMessageParser;

import com.sun.mail.pop3.POP3Message;

public class MailRec   {

	public static void main(String[] args) throws Exception {
        String protocol = "pop3";
        boolean isSSL = true;
        String host = "pop3.126.com";
        int port = 995;
 
        Properties props = new Properties();
        props.put("mail.pop3.ssl.enable", isSSL);
        props.put("mail.pop3.host", host);
        props.put("mail.pop3.port", port);
        
	props.setProperty("mail.debug", "false");
        props.put("mail.pop3.disabletop", true);
        Session session = Session.getDefaultInstance(props);
 
        Store store = null;
        Folder folder = null;
        try {
            store = session.getStore(protocol);
            store.connect(username, password);
 
            folder = store.getFolder("INBOX");
            folder.open(Folder.READ_ONLY);
 
            int size = folder.getMessageCount();
            System.out.println( size );
            Message[] msgs = folder.getMessages();

            for(int i=0;i<size;i++){
      	  
            	 Message message = (POP3Message)msgs[i];
            	 MimeMessageParser parser = new MimeMessageParser((MimeMessage) message).parse();
                 System.out.println(i+"    getContentType: " + message.getContentType());
                 System.out.println(i+"    getSubject: " + message.getSubject()   ) ;
                 System.out.println(i+"    getFrom: " + parser.getFrom()  ) ;
            }
        } 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("OK");
    }
	
 
}


 o(∩_∩)o 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章