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 = "[email protected]"; // 邮件主题 private String subject = "JavaMial 测试"; // 邮件内容 private String content = "这是一封JavaMail测试邮件"; // 邮件发送者 private String fromAddress = "[email protected]"; //附件路径列表 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); } }