用户操作
[即时聊天] [发私信] [加为好友]
曹翔ID:java_xiang
16212次访问,排名7304(1)好友1人,关注者2
阿翔编程学
java_xiang的文章
原创 43 篇
翻译 0 篇
转载 7 篇
评论 8 篇
曹翔的公告
WebService,Java,J2EE 任何个人和单位均可免费复制,拷贝,复制时请注明出处。但如需商业用途或者使用,修改其中的全部或者部分代码,图片。请先和作者联系.
最近评论
asdf:很好,谢谢分享
xiang:恩,好吧,那句话怎么说的,反正就是帮人帮到底的意思吧。
丫头:这个多代码,别人找都难找,想想起他改良的办法啦,帮人帮到底么。。。。
xunmenglin:义愤填庸了~~~~
xunmenglin:我顶阿
楼主说得好啊
文章分类
收藏
    相册
    阿翔的相册
    Blog链接
    傻丫头的Blog
    冰冻小子的Blog
    大中华办公软件在线
    我的CSDN博客
    我的新浪Blog
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 阿翔编程学-JMail邮件发送类收藏

    新一篇: 阿翔编程学-JMail邮件接收类 | 旧一篇: 阿翔编程学-操作Excel文件的类

    package com.jxsafe.source.common.applications.source.classinfo.jmail;

    import java.util.Properties;

    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;

    import javax.mail.Address;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.Multipart;
    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;

    /**
     * 邮件发送类
     * @author CaoXiang
     *
     */
    public class SendMail {

     private MimeMessage mimeMsg; // MIME邮件对象

     private Session session; // 邮件会话对象

     private Properties props; // 系统属性
     
     private String username = ""; // smtp认证用户名

     private String password = ""; // smtp认证用户密码

     private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象

     /**
      * 构造一个新的<code>SendMail</code>对象。
      *
      * @param smtp
      */
     public SendMail(String smtp) {
      setSmtpHost(smtp);
      createMimeMessage();
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#setSmtpHost(java.lang.String)
      */
     public void setSmtpHost(String hostName) {
      System.out.println("设置系统属性:mail.smtp.host = " + hostName);
      if (props == null)
       props = System.getProperties(); // 获得系统属性对象
      props.put("mail.smtp.host", hostName); // 设置SMTP主机
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#createMimeMessage()
      */
     public boolean createMimeMessage() {
      try {
       System.out.println("准备获取邮件会话对象!");
       session = Session.getDefaultInstance(props, null); // 获得邮件会话对象
      } catch (Exception e) {
       System.err.println("获取邮件会话对象时发生错误!" + e);
       return false;
      }
      System.out.println("准备创建MIME邮件对象!");
      try {
       mimeMsg = new MimeMessage(session); // 创建MIME邮件对象
       mp = new MimeMultipart();
       return true;
      } catch (Exception e) {
       System.err.println("创建MIME邮件对象失败!" + e);
       return false;
      }
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#setNeedAuth(boolean)
      */
     public void setNeedAuth(boolean need) {
      System.out.println("设置smtp身份认证:mail.smtp.auth = " + need);
      if (props == null)
       props = System.getProperties();
      if (need) {
       props.put("mail.smtp.auth", "true");
      } else {
       props.put("mail.smtp.auth", "false");
      }
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#setNamePass(java.lang.String, java.lang.String)
      */
     public void setNamePass(String name, String pass) {
      username = name;
      password = pass;
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#setSubject(java.lang.String)
      */
     public boolean setSubject(String mailSubject) {
      System.out.println("设置邮件主题!");
      try {
       mimeMsg.setSubject(mailSubject);
       return true;
      } catch (Exception e) {
       System.err.println("设置邮件主题发生错误!");
       return false;
      }
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#setBody(java.lang.String)
      */
     public boolean setBody(String mailBody) {
      try {
       BodyPart bp = new MimeBodyPart();
       bp.setContent("" + mailBody, "text/html;charset=GB2312");
       mp.addBodyPart(bp);
       return true;
      } catch (Exception e) {
       System.err.println("设置邮件正文时发生错误!" + e);
       return false;
      }
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#addFileAffix(java.lang.String)
      */
     public boolean addFileAffix(String filename) {
      System.out.println("增加邮件附件:" + filename);
      try {
       BodyPart bp = new MimeBodyPart();
       FileDataSource fileds = new FileDataSource(filename);
       bp.setDataHandler(new DataHandler(fileds));
       bp.setFileName(fileds.getName());
       mp.addBodyPart(bp);
       return true;
      } catch (Exception e) {
       System.err.println("增加邮件附件:" + filename + "发生错误!" + e);
       return false;
      }
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#setFrom(java.lang.String)
      */
     public boolean setFrom(String from) {
      System.out.println("设置发信人!");
      try {
       mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人
       return true;
      } catch (Exception e) {
       return false;
      }
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#setTo(java.lang.String)
      */
     public boolean setTo(String to) {
      if (to == null)
       return false;
      try {
       mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
         .parse(to));
       return true;
      } catch (Exception e) {
       return false;
      }

     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#setCopyTo(java.lang.String)
      */
     public boolean setCopyTo(String copyto) {
      if (copyto == null)
       return false;
      try {
       mimeMsg.setRecipients(Message.RecipientType.CC,
         (Address[]) InternetAddress.parse(copyto));
       return true;
      } catch (Exception e) {
       return false;
      }
     }

     /* (non-Javadoc)
      * @see com.jxsafe.source.common.applications.source.classinfo.jmail.ISendMail#sendout()
      */
     public boolean sendout() {
      try {
       mimeMsg.setContent(mp);
       mimeMsg.saveChanges();
       System.out.println("正在发送邮件....");

       Session mailSession = Session.getInstance(props, null);
       Transport transport = mailSession.getTransport("smtp");
       transport.connect(props.get("mail.smtp.host").toString(), username,
         password);
       transport.sendMessage(mimeMsg, mimeMsg
         .getRecipients(Message.RecipientType.TO));
       System.out.println("发送邮件成功!");
       transport.close();

       return true;
      } catch (Exception e) {
       System.err.println("邮件发送失败!" + e);
       return false;
      }
     }

     /**
      * Just do it as this
      * @param args
      */
     public static void main(String[] args) {

      String mailbody = "" + " xxxx ";

      SendMail themail = new SendMail("smtp.163.com");
      themail.setNeedAuth(true);

      if (themail.setSubject("邮件标题") == false)
       return;
      if (themail.setBody(mailbody) == false)
       return;
      if (themail.setTo("xxxx@163.com") == false)
       return;
      if (themail.setFrom("xxx@163.com") == false)
       return;
      if (themail.addFileAffix("c:\\test.txt") == false)
       return;
      themail.setNamePass("XXXXX", "");

      if (themail.sendout() == false)
       return;
     }
     

    发表于 @ 2007年05月31日 14:53:00|评论(loading...)|编辑

    新一篇: 阿翔编程学-JMail邮件接收类 | 旧一篇: 阿翔编程学-操作Excel文件的类

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 曹翔