java web 邮件发送功能

来源:互联网 发布:net商城源码 编辑:程序博客网 时间:2024/06/10 17:37

1.先下一个邮件的包 (mail.jar)


2.再写一个发送的方法

public  void mailSmtp(String host,Address recipient[], Multipart multipart,String mailPaw,String title)throws Exception
{
Properties props = new Properties();
// 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
props.put("mail.smtp.host", "smtp.163.com");
// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证
props.put("mail.smtp.auth", "true");
// 用刚刚设置好的props对象构建一个session
Session session = Session.getDefaultInstance(props);
// 有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使
// 用(你可以在控制台(console)上看到发送邮件的过程)
session.setDebug(true);
// 用session为参数定义消息对象
MimeMessage message = new MimeMessage(session);
//message.setText("");
//加载标题
message.setSubject(title);
// 加载发件人地址
message.setFrom(new InternetAddress(host));
// 加载收件人地址
message.setRecipients(Message.RecipientType.TO, recipient);
//添加附件和内容
message.setContent(multipart);
// 保存邮件
message.saveChanges();
// 发送邮件
Transport transport = session.getTransport("smtp");
// 连接服务器的邮箱
transport.connect("smtp.163.com", host,mailPaw);
// 把邮件发送出去
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}


3.设置好参数


// 为每个邮件接收者创建一个地址

  Address[] tos = new InternetAddress[list.size()];
for (int i = 0; i < list.size(); i++) {
tos[i] = new InternetAddress(list.get(i).getTpEmail());
}
TCrCmOrganization tc=list.get(0).getTCrCmOrganization();
String cmName = tc.getCmName();  //邮件名
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setText(tc.getCmContent());//会议内容
multipart.addBodyPart(contentPart);
// 添加附件
// 设置要发送附件的位置和标题
List<TAnnex> tannexList=tannexBaseDao.find(hql);  //拿到附件信息和数据(附件在存在服务器)
for(int a=0;a<tannexList.size();a++)
{
TAnnex ta =(TAnnex)tannexList.get(a);
String fileName=ta.getAnName();//附件名称
String fileURL=webParentPath+ta.getAnUrl();//附件地址
//affixName="简报"+affixName.substring(affixName.lastIndexOf('/')+1,affixName.length()-1);
BodyPart messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(fileURL);
// 添加附件的内容
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(MimeUtility.encodeText(fileName)); 
multipart.addBodyPart(messageBodyPart);
}
mailSmtp("帐号",tos,multipart,"密码",tc.getCmName());
json.setSuccess(true);
json.setMsg("邮件发送成功!");



0 0
原创粉丝点击