前言
Java編程中發郵件也是常用的。但是原生的jdk自帶的發送郵件用起來還是比較麻煩的。 spring框架在Java語言中完全是神一樣的存在,通過spring框架的郵件工具來發送郵件就非常方便了,本文就主要講解了Java編程中利用spring提供的郵件工具來發送郵件。
編碼實現發送郵件
1、首先我們需要一個Spring框架的環境
2、發送郵件需要的核心依賴包:spring-context-supportXXX.jar、activation-1.1.jar、javax.mail-1.5.2.jar
3、導入以上核心包到項目中
maven依賴配置如下:
<!-- mail and spring-context-support for send email --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version></dependency><dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.2</version></dependency><!-- /email -->4、導入了上面的依賴我們就開始編寫一個簡單的email發送sample
package service;import java.io.File;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeUtility;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.core.io.FileSystemResource;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.MimeMessageHelper;public class EmailSample { /** 日誌**/ private static final Log log = LogFactory.getLog(EmailSample.class); /** * 郵件測試工具類* * @param subject * 郵件主題* @param content * HTML格式的郵件內容*/ public static void sendFileMail(String subject, String content) { JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); // 設置自己登陸email的服務商提供的host senderImpl.setHost("smtp.126.com"); // 設置自己登陸郵箱賬號senderImpl.setUsername("[email protected]"); // 郵箱密碼senderImpl.setPassword("******"); try { // 建立HTML郵件消息MimeMessage mailMessage = senderImpl.createMimeMessage(); // true表示開始附件模式.如果郵件不需要附件設置成false即可MimeMessageHelper messageHelper = new MimeMessageHelper( mailMessage, true, "utf-8"); // 設置收信人的email地址messageHelper.setTo("[email protected]"); // 設置寄信人的email地址{與上面登陸的郵件一致} messageHelper.setFrom("[email protected]"); // 設置郵件發送內容的主題messageHelper.setSubject(subject); // true 表示啟動HTML格式的郵件messageHelper.setText("<html><title>這是一封郵件</title><body>" + content + "</body></html>", true); // 如不需要附件,這裡可以省略---------------------------------------START // 讀取附件一FileSystemResource file1 = new FileSystemResource(new File( "e:/test.jpg")); // 讀取附件二FileSystemResource file2 = new FileSystemResource(new File( "e:/測試.txt")); // 添加附件一messageHelper.addAttachment("test.jpg", file1); // 添加附件二// 附件名有中文可能出現亂碼messageHelper .addAttachment(MimeUtility.encodeWord("測試.txt"), file2); // 如不需要附件,這裡可以省略------------------------------------------END // 發送郵件senderImpl.send(mailMessage); log.info("Email Send Success!"); } catch (Exception e) { log.error("Email Send Error!" + e.getMessage()); } } public static void main(String[] agrs) { // 注意測試需要修改您自己的郵件服務商host,登陸郵件用戶,郵件密碼,附件,收信人地址sendFileMail("測試郵件", "<H1>測試郵件標題</H1>"); }}【注意事項】:運行main方法測試時候修改參數:服務商host、登陸用戶、登陸密碼、收信人地址、附件(不用附件可省略)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。