新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论Java, J2SE, J2ME, J2EE, 以及Eclipse, NetBeans, JBuilder等Java开发环境,还有JSP, JavaServlet, JavaBean, EJB以及struts, hibernate, spring, webwork2, Java 3D, JOGL等相关技术。
    [返回] 计算机科学论坛计算机技术与应用『 Java/Eclipse 』 → javamail发送邮件[原创] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 7894 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: javamail发送邮件[原创] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     wcdxyl 帅哥哟,离线,有人找我吗?天秤座1980-10-9
      
      
      威望:4
      等级:大四(每天看1小时莱昂氏)(版主)
      文章:158
      积分:1145
      门派:IEEE.ORG.CN
      注册:2006/3/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wcdxyl发送一个短消息 把wcdxyl加入好友 查看wcdxyl的个人资料 搜索wcdxyl在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wcdxyl的博客楼主
    发贴心情 javamail发送邮件[原创]

    import java.util.Enumeration;
    import java.util.Properties;
    import java.util.Vector;
    import javax.mail.Authenticator;
    import javax.mail.Message;
    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 java.io.FileReader;
    import java.io.FileInputStream;
    import java.io.IOException;
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;


    /**
    * Title:SendMail
    * Description: 完整邮件发送工具
    * Copyright: Copyright (c) 2005
    * Company: ZZNODE
    * @author C.Wang
    * @version 1.0
    */

    public class MailTest {

      //邮件体
      Multipart mp = new MimeMultipart();

      //定义字符串
      //邮件服务器地址
      String mailserver = "";
      //用户名
      String user = "";
      //密码
      String password = "";
      //主题
      String subject = "";
      //发件人地址
      String fromAddr = "";
      //收件人地址
      String toAddr = "";
      //邮件正文引入文件路径
      String msgfilepath = "";
      //抄送人地址
      String ccAddr = "";
      //密送人地址
      String bccAddr = "";
      //附件路径
      String withfilepath = "";

      public MailTest() {
      }

      public static void main(String[] args) throws IOException {
        //发送邮件
        new MailTest().sendMail();
      }

      /**
       * 获取文本文件内容
       * @param path String
       * @throws IOException
       * @return String
       */
      public String getFile(String path) throws IOException {
        //读取文件内容
        char[] chrBuffer = new char[10];//缓冲十个字符
        int intLength;
        String s = "";//文件内容字符串
        FileReader fis = new FileReader(path);
        while ( (intLength = fis.read(chrBuffer)) != -1) {
          String temp = String.valueOf(chrBuffer);//转换字符串
          s = s + temp;//累加字符串
        }
        return s;
      }

      public void sendMail() throws IOException {
        //读取配置文件
        Properties setupfile = new Properties();
        FileInputStream fis = new FileInputStream("setup.properites");
        setupfile.load(fis);
        mailserver = setupfile.getProperty("mailserver");
        user = setupfile.getProperty("user");
        password = setupfile.getProperty("password");
        subject = setupfile.getProperty("subject");
        fromAddr = setupfile.getProperty("fromAddr");
        toAddr = setupfile.getProperty("toAddr");
        ccAddr = setupfile.getProperty("ccAddr");
        bccAddr = setupfile.getProperty("bccAddr");
        withfilepath = setupfile.getProperty("withfilepath");
        //信件内容文件路径
        msgfilepath = setupfile.getProperty("msgfilepath");
        //获取信件内容
        String message = getFile(msgfilepath);

        try {
          Properties props = new Properties();
          props.put("mail.smtp.host", mailserver); //例如:202.108.44.206 smtp.163.com
          props.put("mail.smtp.auth", "true"); //认证是否设置

          //建立会话并且认证
          Session session = Session.getDefaultInstance(props,
              new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
              return new PasswordAuthentication(user, password);
            }
          }
          );
          Message msg = new MimeMessage(session);
    //发送源地址
          msg.setFrom(new InternetAddress(fromAddr));
    //发送目的地址
          InternetAddress[] tos = InternetAddress.parse(toAddr);
          msg.setRecipients(Message.RecipientType.TO, tos);
    //抄送目的地址
          InternetAddress[] toscc = InternetAddress.parse(ccAddr);
          msg.setRecipients(Message.RecipientType.CC, toscc);

    //密送目的地址
          InternetAddress[] tosbcc = InternetAddress.parse(bccAddr);
          msg.setRecipients(Message.RecipientType.BCC, tosbcc);

    //主题
          msg.setSubject(subject);

    //邮件内容
          //msg.setText(message);//发送不带附件时用,简单信件。
          //把信件内容放入mp内,和附件一样的放发,作为一个整体发送。
          MimeBodyPart mbps = new MimeBodyPart();
          mbps.setText(message);
          mp.addBodyPart(mbps);

    //附件
          Vector file = new Vector();
          file.addElement(withfilepath);
          //附件名集合枚举
          Enumeration efile = file.elements();
          while (efile.hasMoreElements()) {
            MimeBodyPart mbp = new MimeBodyPart();
            //选择出每一个附件名
            String filename = efile.nextElement().toString();
            //得到数据源
            FileDataSource fds = new FileDataSource(filename);
            //得到附件本身并至入BodyPart
            mbp.setDataHandler(new DataHandler(fds));
            //得到文件名同样至入BodyPart
            mbp.setFileName(fds.getName());
            mp.addBodyPart(mbp);
          }
          //移走集合中的所有元素
          file.removeAllElements();
          //Multipart加入到信件
          msg.setContent(mp);

    //发送
          Transport.send(msg);
          System.out.println("Mail is Sent");
        }
        catch (Exception e) {
          System.out.println(e);
        }

      }
    }


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    主页:http://wcdxyl.blogchina.com
    MSN:wcdxyl@163.com

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/3/16 10:12:00
     
     GoogleAdSense天秤座1980-10-9
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Java/Eclipse 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/27 20:12:28

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    54.688ms