天天看點

javamail簡單的郵件發送

1.下載下傳javax.mail.jar

javamail下載下傳位址:https://java.net/projects/javamail/pages/Home

2.将jar引入工程

3.簡單的電子郵件發送

代碼實作

//-----------------------------收件郵箱,發件人,收件人,郵件主題,郵件正文,
public static void sendEmail(String receiveMailAccount,String fjrmc,String sjrmc,String yjzt,String yjzw){
	//紅色部分,是把發件人的使用者名,密碼,smtp伺服器位址寫到了一個properties配置檔案裡,這裡需要把郵箱使用者名密碼換成自己的
        ResourceBundle resource = ResourceBundle.getBundle("resources/email");
    	String username = resource.getString("username");   //郵箱使用者名  *****@163.com
    	String pwd =  resource.getString("pwd");            //郵箱授權密碼
    	String smtp =  resource.getString("smtp");          //smtp.163.com
    	
        if(null!=username&&!username.equals("")&&null!=pwd&&!pwd.equals("")&&null!=smtp&&!smtp.equals("")){  
            try {
            	// 1. 建立參數配置, 用于連接配接郵件伺服器的參數配置
        		Properties props = new Properties();                    // 參數配置
                props.setProperty("mail.transport.protocol", "smtp");   // 使用的協定(JavaMail規範要求)
                props.setProperty("mail.host", smtp);        // 發件人的郵箱的 SMTP 伺服器位址
                props.setProperty("mail.smtp.auth", "true");            // 請求認證,參數名稱與具體實作有關
                
                // 2. 根據配置建立會話對象, 用于和郵件伺服器互動
                Session session = Session.getDefaultInstance(props);
                session.setDebug(true);                                 // 設定為debug模式, 可以檢視詳細的發送 log

                // 3. 建立一封郵件
                
            	// 3.1. 建立一封郵件
                MimeMessage message = new MimeMessage(session);
                // 3.2. From: 發件人
                message.setFrom(new InternetAddress(username, fjrmc, "UTF-8"));
                // 3.3. To: 收件人(可以增加多個收件人、抄送、密送)
                message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMailAccount, sjrmc, "UTF-8"));
                // 3.4. Subject: 郵件主題
                message.setSubject(yjzt, "UTF-8");

                // 3.5. Content: 郵件正文(可以使用html标簽)
                message.setContent(yjzw, "text/html;charset=UTF-8");
                // 3.6. 設定發件時間
                message.setSentDate(new Date());
                // 3.7. 儲存設定
                message.saveChanges();
                
                // 4. 根據 Session 擷取郵件傳輸對象
                Transport transport = session.getTransport();
                // 5. 使用 郵箱賬号 和 密碼 連接配接郵件伺服器
                //    這裡認證的郵箱必須與 message 中的發件人郵箱一緻,否則報錯
                transport.connect(username, pwd);
                // 6. 發送郵件, 發到所有的收件位址, message.getAllRecipients() 擷取到的是在建立郵件對象時添加的所有收件人, 抄送人, 密送人
                transport.sendMessage(message, message.getAllRecipients());
                // 7. 關閉連接配接
                transport.close();
                
			} catch (Exception e) {
				e.printStackTrace();
			}
            
    	}
    	
    	
		
}

//測試
public static void main(String[] args) {
    sendEmail("收件人郵箱@qq.com", "發件人", "收件人", "郵件主題", "郵件正文");
}


           

4.發件郵箱配置

javamail簡單的郵件發送

5.用戶端授權密碼

javamail簡單的郵件發送

以上簡單的郵件發送就基本完成。

運作時如果有報錯Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream

則需要手動删除Common\plugins\com.genuitec.eclipse.j2eedt.core_9.0.0.me201103181703\data\libraryset\EE_5 下javaee.jar裡邊的mail和activation檔案夾