第一步:你需要两个jar包,分别是mail.jar和activation.jar。
第二步:编写一个MailTest.java类:
package com.victorzhang;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import javax.mail.internet.MimeMultipart;
import org.junit.Test;
public class MailTest {
@Test
public void MailSend() throws AddressException, MessagingException, IOException{
/*
* 1.得到session
*/
Properties props = new Properties();
props.setProperty("mail.host", "smtp.163.com");//设置服务器主机名
props.setProperty("mail.smtp.auth", "true");//设置需要认证
//创建认证器
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication("###","###");//用户名和密码
}
};
Session session = Session.getInstance(props, auth);
/*
* 2.创建MimeMessage
*/
MimeMessage msg = new MimeMessage(session);//创建邮件对象
msg.setFrom(new InternetAddress("15822452355@163.com"));//设置发件人
msg.addRecipient(RecipientType.TO, new InternetAddress("408089826@qq.com"));//设置收件人
msg.addRecipient(RecipientType.CC, new InternetAddress("408089826@qq.com"));//抄送
msg.addRecipient(RecipientType.BCC, new InternetAddress("408089826@qq.com"));//暗送
msg.setSubject("测试邮件");//设置邮件主题
MimeMultipart partlist = new MimeMultipart();//主体部件
msg.setContent(partlist);//把邮件内容设置成多部件的集合对象
MimeBodyPart part1 = new MimeBodyPart();//创建一个部件
part1.setContent("一封测试邮件", "text/html;charset=utf-8");//给部件指定内容
partlist.addBodyPart(part1);//把部件添加到集合中
MimeBodyPart part2 = new MimeBodyPart();//创建第二个部件
part2.attachFile(new File("E:/windows快捷键.txt"));//为部件指定附件
part2.setFileName("windows.txt");
partlist.addBodyPart(part2);
/*
* 3.发送邮件
*/
Transport.send(msg);
}
}
第三步:关于附件的文件名称中文编码解释:
part2.setFileName("windows.txt");
对这行代码进行处理:
part2.setFileName(MimeUtility.encodingTest("windows快捷键.txt"));
关于两个jar包的下载,可以在我的资源中进行下载。