package com;
import java.io.File;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail .javamail.MimeMessageHelper;
public
class AttachedFileMail {
/**
* 本類測試的是關於郵件中帶有附件的例子
* @param args
*/
public
static
void main(String[] args)
throws Exception{
JavaMailSenderImpl senderImpl =
new JavaMailSenderImpl();
//設定mail server
senderImpl.setHost(
"192.168.1.2");
senderImpl.setUsername(
"username");
senderImpl.setPassword(
"password");
//創建郵件消息,發送簡單郵件和html郵件的區別
MimeMessage mailMessage = senderImpl.createMimeMessage();
//注意這裏的boolean,等於真的時候才能嵌套圖片,在構建MimeMessageHelper時候,所給定的值是true表示啓用,
multipart模式
MimeMessageHelper messageHelper =
new MimeMessageHelper(mailMessage,
true);
//設置收件人,寄件人
messageHelper.setTo(
"sun111@163.com");
messageHelper.setFrom(
"webadmin@163.com");
messageHelper.setSubject(
"測試郵件中上傳附件!!");
//true 表示啓動HTML格式的郵件
messageHelper.setText("<html><head></head><body><h1>你好:附件中有關於CSS的學習資料!!
</h1></body></html>",
true);
FileSystemResource file =
new FileSystemResource(
new File(
"d:/CSS110.rar"));
//這裏的方法調用和插入圖片是不一樣的。
messageHelper.addAttachment(
"CSS110.rar",file);
//發送郵件
senderImpl.send(mailMessage);
System.out.println(
"郵件發送成功.....");
}
}
今天學習了一下JavaMail,javamail發送郵件確實是一個比較麻煩的問題。爲了之後使用方便,本身寫了段代碼,打成jar包,以方便之後使用。呵呵
如下三段代碼是個人所有代碼,朋友們若是想用,直接複製便可。html
第一個類:MailSenderInfo.java java
第二個類:SimpleMailSender.javaweb
第三個類:MyAuthenticator.java spring
下面給出使用上面三個類的代碼:數組
最後,給出朋友們幾個注意的地方:
一、使用此代碼你能夠完成你的javamail的郵件發送功能。三個類缺一不可。
二、這三個類我打包是用的
com.util.mail
包,若是不喜歡,你能夠本身改,但三個類文件必須在同一個包中
三、不要使用你剛剛註冊過的郵箱在程序中發郵件,若是你的163郵箱是剛註冊不久,那你就不要使用
「smtp.163.com」
。由於你發不出去。剛註冊的郵箱是不會給你這種權限的,也就是你不能經過驗證。要使用你常常用的郵箱,並且時間比較長的。
四、另外一個問題就是
mailInfo.setMailServerHost("smtp.163.com");
與
mailInfo.setFromAddress("han2000lei@163.com");
這兩句話。即若是你使用163smtp服務器,那麼發送郵件地址就必須用163的郵箱,若是不的話,是不會發送成功的。
五、關於javamail驗證錯誤的問題,網上的解釋有不少,但我看見的只有一個。就是個人第三個類。你只要複製全了代碼,我想是不會有問題的。