前言
Java編程中發(fā)郵件也是常用的。但是原生的jdk自帶的發(fā)送郵件用起來還是比較麻煩的。spring框架在Java語言中完全是神一樣的存在,通過spring框架的郵件工具來發(fā)送郵件就非常方便了,本文就主要講解了Java編程中利用spring提供的郵件工具來發(fā)送郵件。
編碼實現(xiàn)發(fā)送郵件
1、首先我們需要一個Spring框架的環(huán)境
2、發(fā)送郵件需要的核心依賴包: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發(fā)送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格式的郵件內(nèi)容 */ public static void sendFileMail(String subject, String content) { JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); // 設(shè)置自己登陸email的服務(wù)商提供的host senderImpl.setHost("smtp.126.com"); // 設(shè)置自己登陸郵箱賬號 senderImpl.setUsername("test@126.com"); // 郵箱密碼 senderImpl.setPassword("******"); try { // 建立HTML郵件消息 MimeMessage mailMessage = senderImpl.createMimeMessage(); // true表示開始附件模式.如果郵件不需要附件設(shè)置成false即可 MimeMessageHelper messageHelper = new MimeMessageHelper( mailMessage, true, "utf-8"); // 設(shè)置收信人的email地址 messageHelper.setTo("111@qq.com"); // 設(shè)置寄信人的email地址{與上面登陸的郵件一致} messageHelper.setFrom("test@126.com"); // 設(shè)置郵件發(fā)送內(nèi)容的主題 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); // 添加附件二 // 附件名有中文可能出現(xiàn)亂碼 messageHelper .addAttachment(MimeUtility.encodeWord("測試.txt"), file2); // 如不需要附件,這里可以省略------------------------------------------END // 發(fā)送郵件 senderImpl.send(mailMessage); log.info("Email Send Success!"); } catch (Exception e) { log.error("Email Send Error!" + e.getMessage()); } } public static void main(String[] agrs) { // 注意測試需要修改您自己的郵件服務(wù)商host,登陸郵件用戶,郵件密碼,附件,收信人地址 sendFileMail("測試郵件", "<H1>測試郵件標題</H1>"); }}
【注意事項】:運行main方法測試時候修改參數(shù):服務(wù)商host、登陸用戶、登陸密碼、收信人地址、附件(不用附件可省略)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網(wǎng)。
新聞熱點
疑難解答
圖片精選