设为首页收藏本站
开启辅助访问
切换到宽版

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索
查看: 3642|回复: 0
打印 上一主题 下一主题

java 使用javamail发送邮件

[复制链接]

我玩的应用:

跳转到指定楼层
楼主
发表于 2012-12-13 19:51:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用 JavaMail 收发邮件只需要下载两个开源的 jar 文件,感谢“我心依旧”在“深入浅出JavaMail”中提供的这两个jar文件的下载链接,我在这里引用了:
  mail.jar  : http://java.sun.com/products/javamail/index.html 并添加到classpath即可.
  classpath即可.  


下面是发送邮件SendMail.java(含附件)代码:
该代码为参考。要自己参考着改写。
  1. package cn.com.cxweb.comm.dealwithMail;

  2. import javax.mail.*;
  3. import javax.mail.internet.*;
  4. import java.util.*;
  5. import javax.activation.*;
  6. public class SendMail {
  7.     private String host = "";  //smtp服务器
  8. private String from = "";  //发件人地址
  9. private String to = "";    //收件人地址
  10. private String affix = ""; //附件地址
  11. private String affixName = ""; //附件名称
  12. private String user = "";  //用户名
  13. private String pwd = "";   //密码
  14. private String subject = ""; //邮件标题

  15. public void setAddress(String from,String to,String subject){
  16.   this.from = from;
  17.   this.to   = to;
  18.   this.subject = subject;
  19. }

  20. public void setAffix(String affix,String affixName){
  21.   this.affix = affix;
  22.   this.affixName = affixName;
  23. }

  24.     public void send(String host,String user,String pwd) {
  25.      this.host = host;
  26.   this.user = user;
  27.   this.pwd  = pwd;
  28.       
  29.         Properties props = new Properties();
  30.       
  31.         //设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
  32.         props.put("mail.smtp.host", host);
  33.         //需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
  34.         props.put("mail.smtp.auth", "true");
  35.       
  36.         //用刚刚设置好的props对象构建一个session
  37.         Session session = Session.getDefaultInstance(props);
  38.       
  39.         //有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使
  40.         //用(你可以在控制台(console)上看到发送邮件的过程)
  41.         session.setDebug(true);
  42.       
  43.         //用session为参数定义消息对象
  44.         MimeMessage message = new MimeMessage(session);
  45.         try{
  46.          //加载发件人地址
  47.             message.setFrom(new InternetAddress(from));
  48.            //加载收件人地址
  49.             message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
  50.            //加载标题
  51.             message.setSubject(subject);
  52.            
  53.             // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
  54.             Multipart multipart = new MimeMultipart();         
  55.            
  56.            
  57.             //   设置邮件的文本内容
  58.             BodyPart contentPart = new MimeBodyPart();
  59.             contentPart.setText("邮件的具体内容在此");
  60.             multipart.addBodyPart(contentPart);
  61.             //添加附件
  62.             BodyPart messageBodyPart= new MimeBodyPart();
  63.             DataSource source = new FileDataSource(affix);
  64.             //添加附件的内容
  65.             messageBodyPart.setDataHandler(new DataHandler(source));
  66.             //添加附件的标题
  67.             //这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码
  68.             sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
  69.             messageBodyPart.setFileName("=?GBK?B?"+enc.encode(affixName.getBytes())+"?=");
  70.             multipart.addBodyPart(messageBodyPart);
  71.            
  72.            
  73.             //将multipart对象放到message中
  74.             message.setContent(multipart);
  75.             //保存邮件
  76.             message.saveChanges();
  77.             //   发送邮件
  78.             Transport transport = session.getTransport("smtp");
  79.             //连接服务器的邮箱
  80.             transport.connect(host, user, pwd);
  81.             //把邮件发送出去
  82.             transport.sendMessage(message, message.getAllRecipients());
  83.             transport.close();
  84.         }catch(Exception e){
  85.             e.printStackTrace();
  86.         }
  87.     }   
  88.    
  89.    
  90.    
  91.     public static void main(String[] args){
  92.      SendMail cn = new SendMail();
  93.      //设置发件人地址、收件人地址和邮件标题
  94.      cn.setAddress("cxweb@cxweb.com.cn","luinstein@cxweb.com.cn","一个带附件的JavaMail邮件");
  95.      //设置要发送附件的位置和标题
  96.      cn.setAffix("c:/cxweb/luinstein.txt","luinstein_cxweb.txt");
  97.      //设置smtp服务器以及邮箱的帐号和密码
  98.      cn.send("mail.cxweb.com.cn","cxweb@cxweb.com.cn","luinsteinpassword");
  99.      
  100.     }
  101. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2024-9-22 05:28 , Processed in 0.076199 second(s), 26 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表