javamail發信和收信機制(smtp、pop3、imap)

javamail發信和收信機制(smtp、pop3、imap)

import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPStore;
import com.sun.mail.util.MailSSLSocketFactory;<pre name="code" class="html">public class MailSendAndReceiveTest {
public void pop3Receive(){
		try {
			Properties props = System.getProperties();
			props.setProperty("mail.pop3.host", "192.168.1.194");
			props.setProperty("mail.pop3.port", "110");
			props.setProperty("mail.store.protocol", "pop3");
			props.setProperty("mail.debug", "true");
			String username = "[email protected]";
			String password = "123456";
			Session session = Session.getInstance(props);
			
			Store store = (Store) session.getStore("pop3");
			store.connect(username,password);
			Folder folder = null;
			folder =  (Folder) store.getFolder("INBOX");
			if (folder.exists())
				folder.open(2);
			Message[] messages = folder.getMessages();
			if(messages!=null&&messages.length>0){
				for (Message message : messages) {
					System.out.println(message.getSubject());
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

public void imapReceive(){
		try {
			Properties props = System.getProperties();
			props.setProperty("mail.imap.host", "192.168.1.194");
			props.setProperty("mail.imap.port", "143");
			props.setProperty("mail.store.protocol", "imap");
			props.setProperty("mail.debug", "true");
			String username = "[email protected]";
			String password = "123456";
			Session session = Session.getInstance(props);
			
			IMAPStore store = (IMAPStore) session.getStore("imap");
			store.connect(username,password);
			IMAPFolder folder = null;
			folder =  (IMAPFolder) store.getFolder("INBOX");
			if (folder.exists())
				folder.open(2);
			Message[] messages = folder.getMessages();
			if(messages!=null&&messages.length>0){
				for (Message message : messages) {
					System.out.println(message.getSubject());
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

public void smtpSend(){
		try {
			Properties properties = new Properties();
			properties.setProperty("mail.transport.protocol", "smtp");// 發送郵件協議
			properties.setProperty("mail.smtp.auth", "true");// 需要驗證
			properties.setProperty("mail.smtp.port", "25");
			properties.setProperty("mail.transport.protocol", "smtp");
			properties.setProperty("mail.smtp.host", "192.168.1.194");
			properties.setProperty("mail.debug", "true");//設置debug模式
			final String username = "[email protected]";
			final String password = "123456";
			// 後臺輸出郵件發送的過程
			Session session = Session.getInstance(properties,
					new Authenticator() {
						protected PasswordAuthentication getPasswordAuthentication() {
							return new PasswordAuthentication(username,
									password);
						}
					});
			// 郵件信息
			Message messgae = new MimeMessage(session);
			messgae.setFrom(new InternetAddress("[email protected]"));// 設置發送人
			messgae.setText("X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");// 設置郵件內容
			messgae.setSubject("測試postfix郵件發送");// 設置郵件主題
			// 發送郵件
			Transport tran = session.getTransport();
			tran.connect("192.168.1.194", username, password);// 連接到新浪郵箱服務器
			tran.sendMessage(messgae, new Address[] { new InternetAddress("[email protected]") });// 設置郵件接收人
			tran.close();
		} catch (Exception e) {
		}
	}

public void smtpSSLSend(){
		try {
			MailSSLSocketFactory sf = new MailSSLSocketFactory();
			sf.setTrustAllHosts(true);
			Properties properties = new Properties();
			// 郵件發送協議
			properties.setProperty("mail.transport.protocol", "smtp");
			// SMTP郵件服務器 
			properties.setProperty("mail.smtp.host", "192.168.1.194");
			// SMTP郵件服務器默認端口 
			properties.put("mail.smtp.socketFactory.port", 465);//發信端口
			 // 是否要求身份認證 
			properties.setProperty("mail.smtp.auth", "true");
			 // 是否啓用調試模式
			properties.setProperty("mail.debug", "true");//設置debug模式
			properties.put("mail.smtp.ssl.enable", "true");//是否開啓ssl
			properties.put("mail.smtp.ssl.socketFactory", sf);
			// 發送郵件協議
			properties.setProperty("mail.smtp.auth", "true");// 需要驗證
			final String username = "[email protected]";
			final String password = "123456";
			
			// 創建Session實例對象 
	        Session session = Session.getDefaultInstance(properties,new Authenticator() {
				protected PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication(username,
							password);
				}
			});
	        // 創建MimeMessage實例對象 
	        MimeMessage message = new MimeMessage(session); 
	        // 設置發件人 
	        message.setFrom(new InternetAddress("[email protected]")); 
	        // 設置郵件主題 
	        message.setSubject("SSL認證測試javamail"); 
	        // 設置收件人 
	        message.setRecipient(RecipientType.TO, new InternetAddress("[email protected]")); 
	        // 設置發送時間 
	        message.setSentDate(new Date()); 
	        // 設置純文本內容爲郵件正文 
	        message.setText("abcdefghijklmnopqrstuvwxyz");
	        //回執
			message.setHeader("Disposition-Notification-To", "[email protected]");
			//緊急
			message.setHeader("X-Priority", "1");
	        // 保存並生成最終的郵件內容 
	        message.saveChanges(); 
	        Transport.send(message);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


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