package test;
import java.util.ArrayList;
import java.util.List;
public class MailBean {
// 发送邮件服务器
private String hostName = "smtp.163.com";
// 发送邮件服务器端口
private int port = 25;
// 发送者邮箱用户名
private String userName = "xxx";
// 发送者邮箱密码
private String password = "";
// 邮件接收者
private String toAddress = "xxx@qq.com";
// 邮件主题
private String subject = "JavaMial 测试";
// 邮件内容
private String content = "这是一封JavaMail测试邮件";
// 邮件发送者
private String fromAddress = "xxx@163.com";
//附件路径列表
private List<String> fileList=new ArrayList<String>();
public List<String> getFileList() {
return fileList;
}
public void setFileList(List<String> fileList) {
this.fileList = fileList;
}
public String getFromAddress() {
return fromAddress;
}
public void setFromAddress(String fromAddress) {
this.fromAddress = fromAddress;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getToAddress() {
return toAddress;
}
public void setToAddress(String toAddress) {
this.toAddress = toAddress;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
package test;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
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.MimeMultipart;
public class JavaMail {
@SuppressWarnings("static-access")
public void setMail(MailBean mailBean) {
try {
// 设置JavaMail属性
Properties props = new Properties();
// 设置邮件服务器端口
props.put("mail.smtp.port", mailBean.getPort());
// SMTP邮件服务器IP地址或主机名
props.put("mail.smtp.host", mailBean.getHostName());
props.put("mail.smtp.auth", "true");
// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
EmailAuthenticator auth = new EmailAuthenticator(mailBean.getUserName(), mailBean.getPassword());
// 根据已配置的JavaMail属性创建Session实例
Session mailSession = Session.getInstance(props, (Authenticator) auth);
// 你可以在控制台(console)上看到发送邮件的过程
mailSession.setDebug(true);
MimeMessage msg = new MimeMessage(mailSession);
InternetAddress[] address = InternetAddress.parse(mailBean.getToAddress(), false);
// 设置邮件接收者
msg.setRecipients(Message.RecipientType.TO, address);
// 设置邮件主题
msg.setSubject(mailBean.getSubject());
// 设置邮件时间
msg.setSentDate(new Date());
// 设置邮件发送者
msg.setFrom(new InternetAddress(mailBean.getFromAddress()));
Multipart multipart = new MimeMultipart();
// 加入文本内容
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setText(mailBean.getContent());
multipart.addBodyPart(mimeBodyPart);
List<String> fileList = mailBean.getFileList();
//加入附件
for (String filePath : fileList) {
MimeBodyPart bodyPart = new MimeBodyPart();
//得到数据源
FileDataSource fileDataSource = new FileDataSource(filePath);
bodyPart.setDataHandler(new DataHandler(fileDataSource));
bodyPart.setDisposition(Part.ATTACHMENT);
//设置文件名
bodyPart.setFileName(fileDataSource.getName());
multipart.addBodyPart(bodyPart);
}
msg.setContent(multipart);
// 创建Transport对象
Transport tran = mailSession.getTransport("smtp");
// 连接邮件服务器
tran.connect(mailBean.getHostName(), mailBean.getUserName(), mailBean.getPassword());
// 发送邮件
tran.send(msg);
tran.close();
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
// 邮件用户身份验证类
class EmailAuthenticator extends Authenticator {
private String username;
private String userpass;
EmailAuthenticator(String un, String up) {
super();
username = un;
userpass = up;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, userpass);
}
}
public static void main(String[] args) {
JavaMail javaMail = new JavaMail();
MailBean mailBean = new MailBean();
List<String> fileList = new ArrayList<String>();
fileList.add("G:\\temp\\1.txt");
fileList.add("G:\\temp\\2.txt");
mailBean.setFileList(fileList);
javaMail.setMail(mailBean);
}
}