java发送邮件带附件
2016-05-17 15:21
537 查看
package com.smtp; import java.util.Vector; public class MailBean { private String to; // 收件人 private String from; // 发件人 private String host; // SMTP主机 private String username; // 发件人的用户名 private String password; // 发件人的密码 private String subject; // 邮件主题 private String content; // 邮件正文 Vector<String> file; // 多个附件 private String filename; // 附件的文件名 public String getTo() { return to; } public void setTo(String to) { this.to = to; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } 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 getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } public Vector<String> getFile() { return file; } public void attachFile(String fileName) { if (file == null){ file = new Vector<String>(); } file.addElement(fileName); } }
package com.smtp; import java.util.Date; import java.util.Enumeration; import java.util.Properties; import java.util.Vector; 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.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; 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 class SendMail { public String toChinese(String text) { try { text = MimeUtility.encodeText(new String(text.getBytes(), "GB2312"), "GB2312", "B"); } catch (Exception e) { e.printStackTrace(); } return text; } public boolean sendMail(MailBean mb) { String host = mb.getHost(); final String username = mb.getUsername(); final String password = mb.getPassword(); String from = mb.getFrom(); String to = mb.getTo(); String subject = mb.getSubject(); String content = mb.getContent(); String fileName = mb.getFilename(); Vector<String> file = mb.getFile(); Properties props = System.getProperties(); props.put("mail.smtp.host", host); // 设置SMTP的主机 props.put("mail.smtp.auth", "true"); // 需要经过验证 Session session = Session.getInstance(props, new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); InternetAddress[] address = { new InternetAddress(to) }; msg.setRecipients(Message.RecipientType.TO, address); msg.setSubject(toChinese(subject)); Multipart mp = new MimeMultipart(); MimeBodyPart mbpContent = new MimeBodyPart(); mbpContent.setText(content); mp.addBodyPart(mbpContent); /* 往邮件中添加附件 */ if (file != null) { Enumeration<String> efile = file.elements(); while (efile.hasMoreElements()) { MimeBodyPart mbpFile = new MimeBodyPart(); fileName = efile.nextElement().toString(); FileDataSource fds = new FileDataSource(fileName); mbpFile.setDataHandler(new DataHandler(fds)); mbpFile.setFileName(toChinese(fds.getName())); mp.addBodyPart(mbpFile); } System.out.println("添加成功"); } msg.setContent(mp); msg.setSentDate(new Date()); Transport.send(msg); } catch (MessagingException me) { me.printStackTrace(); return false; } return true; } }
package com.smtp; public class TestJavaMail { public static void main(String[] args) { MailBean mb = new MailBean(); mb.setHost("smtp.126.com"); // 设置SMTP主机(163),若用126,则设为:smtp.126.com mb.setUsername("邮箱地址"); // 设置发件人邮箱的用户名 mb.setPassword("邮箱密码"); // 设置发件人邮箱的密码,需将*号改成正确的密码 mb.setFrom("设置发件人的邮箱"); // 设置发件人的邮箱 mb.setTo("设置收件人的邮箱"); // 设置收件人的邮箱 mb.setSubject("测试_JavaMail"); // 设置邮件的主题 mb.setContent("本邮件中包含三个附件,请检查!"); // 设置邮件的正文 mb.attachFile("往邮件中添加附件"); // 往邮件中添加附件 mb.attachFile("往邮件中添加附件"); mb.attachFile("往邮件中添加附件"); SendMail sm = new SendMail(); System.out.println("正在发送邮件..."); // 发送邮件 if (sm.sendMail(mb)){ System.out.println("发送成功!"); }else{ System.out.println("发送失败!"); } } }
相关文章推荐
- Struts要点总结(上)
- Java 虚拟机 gc算法总结
- Java Web基础——Action+Service +Dao三层的功能划分
- DOS运行Java命令的同时添加依赖jar包
- Java中ArrayList和LinkedList区别
- Java enum的用法详解
- struts.xml中class路径错误报错的问题
- Java内存泄漏例子
- Java中类的数据成员的初始化顺序
- struts.xml配置详解
- Android Studio 和 Eclipse 中获取SHA1详解
- 创建Maven父子工程并导入Eclipse
- java中this关键字
- Java MD5加密算法
- Java中线程的俩种方式,编码的变体
- java 异步操作数据库
- javamail在main方法中可以读取邮件,在web项目中读取不到邮件信息
- java 集合框架总结
- Struts2中的国际化
- java 面向对象练习题3