/**
* java发送带附件的邮件
* 周枫
* 2013.8.10
*/
package com.dsideal.Util;
import javax.mail.*;
import javax.mail.internet.*; import java.util.*;
import javax.activation.*; public class SendMail { private static String host = "smtp.qq.com"; // smtp服务器
private static String user = "95834073@qq.com"; // 用户名
private static String pwd = "******"; // 密码 /**
* <p>功能:</p>
* @author 周枫
* @date 2013-8-10
* @param "发送的邮箱", "接收的邮箱", "这个是收件箱列表标题名称", "发送邮件显示标题", "邮件正文", "附件名称","附件地址+名称"
* @return void
*/
public static void send(String from,String to,String personalName,String subject,String mail_body,String affixName,String affix_url) { Properties props = new Properties(); // 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
props.put("mail.smtp.host", host);
// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
props.put("mail.smtp.auth", "true"); // 用刚刚设置好的props对象构建一个session
Session session = Session.getDefaultInstance(props); // 用session为参数定义消息对象
MimeMessage message = new MimeMessage(session);
try {
Address address = new InternetAddress(from,personalName);
// 加载发件人地址
message.setFrom(address);
// 加载收件人地址
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// 加载标题
message.setSubject(subject); // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
Multipart multipart = new MimeMultipart(); // 设置邮件的文本内容
BodyPart contentPart = new MimeBodyPart();
contentPart.setText(mail_body);
multipart.addBodyPart(contentPart);
// 添加附件
BodyPart messageBodyPart = new MimeBodyPart();
//解决中文乱码问题
DataSource source = new FileDataSource(affix_url);
// 添加附件的内容
messageBodyPart.setDataHandler(new DataHandler(source));
// 添加附件的标题
// 这里很重要,不会变成乱码
messageBodyPart.setFileName(MimeUtility.encodeText(affixName)); multipart.addBodyPart(messageBodyPart); // 将multipart对象放到message中
message.setContent(multipart);
// 保存邮件
message.saveChanges();
// 发送邮件
Transport transport = session.getTransport("smtp");
// 连接服务器的邮箱
transport.connect(host, user, pwd);
// 把邮件发送出去
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
SendMail.send("95834073@qq.com", "95834073@qq.com", "列表名称", "html页面标题", "周枫java发送邮件", "附件.txt", "D:"+File.separator+"temp周枫.txt");
System.out.println("邮件成功发送完成!");
}
}

最新文章

  1. 千万pv大型web系统架构,学习从点滴开始
  2. 使用 jQuery 和 CSS3 制作滑动导航菜单
  3. easyUI类取嵌套的类型(pastJson结合)
  4. python(28)获得网卡的IP地址
  5. gridview 实现鼠标悬浮行提示行中列的信息
  6. hdu 4277 2012长春赛区网络赛 dfs+hashmap ***
  7. openssh
  8. 【转】sed命令详解
  9. JAVA实现前几秒几分钟几天前几年源码
  10. 网络编程——TCP连接
  11. 转:php+mysql菜单无限级分类(非递归)
  12. python 列表操作方法详解
  13. 对不可描述的软件安装sfbo插件
  14. Typescript基础
  15. 项目中使用sass,如何实现自动编译
  16. hibernate中持久化对象的生命周期(转载)
  17. web服务,下载https链接的文件,提示javax.net.ssl.SSLKeyException: RSA premaster secret error
  18. DS-博客作业03--栈和队列
  19. C# 如何防止重放攻击
  20. SLA等级那些9的实际意义

热门文章

  1. 通过srvctl add命令添加database信息到srvctl管理器
  2. Android异步处理二:使用AsyncTask异步更新UI界面
  3. c# 备份数据
  4. 搭建sftp服务+nginx代理
  5. TP框架---thinkphp查询和添加数据
  6. 【BZOJ3721】PA2014 Final Bazarek 贪心
  7. 源码编译mysql 5.5+ 安装过程全记录
  8. 一步一步教你简单完成 Android USB开发
  9. RQNOJ 622 最小重量机器设计问题:dp
  10. cifs挂载远程文件出现 No such device or address错误