以前的时候想着java发邮件很简单,因为当时使用的是outlook实现的,有兴趣的可以去看看之前的两篇博客文章,1.使用java底层实现邮件的发送(含测试,源码)   和 2.使用Spring实现邮件的发送(含测试,注释,源码)

就在今天,遇到的需求是给一个QQ邮箱发一份邮件,刚看到需求一看,这不很简单么,随便改改就行了。

于是我花了15分钟写出来全部代码,但是花了2小时解决了代码的bug.........自己都有点佩服了!下面我来说说我的bug是怎么遇到的和怎么解决的。

第一,发给QQ邮箱与outlook不一样的是,,而outlook的则是

第二,,而Outlook的密码可以直接就是你当初设置的密码,但是在这里是QQ邮箱的授权码,所谓的授权码,就是你开启了QQ邮箱的

java邮件发送带附件_java

之后,会出来的。

第三,设置

true

true

而outlook可以没有他,直接就可以。QQ邮箱的绝对不行,就这句话折腾了我好久,这句话的意思就是SSL加密。

第四,这个与outlook一样,添加附件是不能添加文件夹的!不能添加文件夹的!不能添加文件夹的!!!一定要记住,别自作聪明的找方法,比如像我一样吧JavaMail里面的Folder抽象类里面的方法挨个试了试。。。。。没有半点用,还浪费了好多时间,你要想添加多个附件的话你丫的可以打包啊,我当初怎么就没有想到呢,只要有个后缀名就可以添加,打包成.zip  或者  .rar 都可以,调用的类是:

FileDataSource file1 = new FileDataSource(new File("E:\\Edisk\\java\\springDemo.rar"));
helper.addAttachment(file1.getName(), file1);
接下来我上一下源码吧:
applicationContext.xml里面的配置:
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
true
true
MailServiceImpl实现类里面的代码:
/**
* @Title: MailServiceImpl.java
* @Package org.service.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com
* @date 2017-6-1 下午12:17:11
* @version V1.0
*/
package org.service.impl;
import java.io.File;
import javax.activation.FileDataSource;
import javax.mail.Folder;
import javax.mail.MessagingException;
import javax.mail.Store;
import javax.mail.internet.MimeMessage;
import org.service.IMailService;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
/**
*
* 项目名称:spring_Cchop8
* 类名称:MailServiceImpl
* 类描述:
* 创建人:Mu Xiongxiong
* 创建时间:2017-6-1 下午12:17:11
* 修改人:Mu Xiongxiong
* 修改时间:2017-6-1 下午12:17:11
* 修改备注:
* @version
*
*/
public class MailServiceImpl implements IMailService {
private JavaMailSender javaMailSender;
/**(非 Javadoc)
* 
Title: sendMail
* 
Description(描述): 
* @see org.service.IMailService#sendMail()
*/
@Override
public void sendMail() {
//发送带格式的邮件
MimeMessage message = javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper= new MimeMessageHelper(message,true,"utf-8");
helper.setFrom("2451999120@qq.com");
helper.setTo("1513614984@qq.com");
helper.setSubject("穆雄雄");
helper.setText("》》》这是原来的字体 》》》这是加粗的字体 >>>这个是链接 点击进入",true); //内容
//添加一个附件
FileDataSource file1 = new FileDataSource(new File("E:\\Edisk\\java\\spring_Cchop8.rar"));
helper.addAttachment(file1.getName(), file1);
} catch (MessagingException e) {
// TODO 异常执行块!
e.printStackTrace();
}
javaMailSender.send(message);
}
public JavaMailSender getJavaMailSender() {
return javaMailSender;
}
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
}

结束!!!