转发的别人的,感觉很全很好,分享下
http://blog.youkuaiyun.com/bestlove12345/article/details/51858116
最全邮件记录:
http://blog.youkuaiyun.com/jianggujin/article/details/51253129
邮件发送代码:
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public static void sendMail() throws Exception {
// 初始化信息
String sender = "xxx@126.com";
String password = "xxxx";
// String smtpServer = "localhost";
String smtpServer = "smtp.126.com";
String recipient = "xxx@163.com";
String subject = "测试邮件主题";
String fileAttachment = "I:\\附件.txt"; //附件
String content = "测试邮件内容\n测试邮件内容1";
// 配置服务器属性
Properties proper = new Properties();
proper.put("mail.smtp.host", smtpServer); // smtp服务器
proper.put("mail.smtp.auth", "true"); // 是否smtp认证
proper.put("mail.smtp.port", "25"); // 设置smtp端口
proper.put("mail.transport.protocol", "smtp"); // 发邮件协议
proper.put("mail.store.protocol", "pop3"); // 收邮件协议
// 配置邮件接收地址
InternetAddress[] receiveAddress = new InternetAddress[1];
try {
receiveAddress[0] = new InternetAddress(recipient);
} catch (AddressException e) {
e.printStackTrace();
}
// smtp认证,获取Session
SmtpAuth sa = new SmtpAuth();
sa.setUserinfo(sender, password);
Session session = Session.getInstance(proper, sa);
session.setPasswordAuthentication(new URLName(smtpServer), sa
.getPasswordAuthentication());
// 构建邮件体
MimeMessage sendMess = new MimeMessage(session);
MimeBodyPart mbp = new MimeBodyPart();
MimeMultipart mmp = new MimeMultipart();
try {
// 邮件文本内容
mbp.setContent(content, "text/plain; charset=UTF-8");
mmp.addBodyPart(mbp);
// 附件处理
if(fileAttachment!=null&&fileAttachment!=""){
DataSource source = new FileDataSource(fileAttachment);
String name = source.getName();
mbp = new MimeBodyPart();
mbp.setDataHandler(new DataHandler(source));
mbp.setFileName(MimeUtility.encodeText(name));//解决邮件附件中文乱码问题
mmp.addBodyPart(mbp);
}
// 邮件整体
sendMess.setSubject(subject);
sendMess.setContent(mmp);
// 发送邮件
sendMess.setFrom(new InternetAddress(sender));
sendMess.setRecipients(Message.RecipientType.TO, receiveAddress);
Transport.send(sendMess);
System.out.println("发送成功");
} catch (MessagingException ex) {
ex.printStackTrace();
}
}
实体类:
import javax.mail.Authenticator;
public class SmtpAuth extends Authenticator {
private String user, password;
public void setUserinfo(String getuser, String getpassword) {
user = getuser;
password = getpassword;
}
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(user, password);
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
}