前言
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、登陸用戶、登陸密碼、收信人地址、附件(不用附件可省略)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。
新聞熱點
疑難解答
圖片精選