使用JAVAMAIL发邮件的一个例子(转)

Facetalking

Facetalking

2016-02-19 20:07

下面请跟着图老师小编一起来了解下使用JAVAMAIL发邮件的一个例子(转),精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

          首先引入j2ee的包路径到ClassPath,已经安装Jbuilder的可以在它的安装路径lib目录下找
  到mail.jar,activation.jar,将这两个包加入系统的环境变量,那么即使不用JBuilder开发的话也可以
  使用了.
  
          程序:
  
  import Java.io.*;
  import java.util.*;
  import javax.mail.*;
  import javax.mail.internet.*;

  /**
   * pTitle: 简易MailBean/p
   * pDescription: 提供简便的Mail发送功能(/p
   * pCopyright: Copyright (c) 2003/p
   * @version 1.0
   */

  class ExtendString {
    public ExtendString() {
    }
    /**
     去掉字符串两端的空白字符,并将字符串转化为中国的标准字符gb2312的字符串.
     */
    public String CS(String str) { //去掉字符串2端的空白字符
        try {
            if (str == null)
                return "";
            str = str.trim();
            if (str == null)
                return "";
            str = new String(str.getBytes("8859_1"), "GBK");
        }
        catch (Exception e) {
            System.out.println(e);
        }
        return str;
    }

  }

  public class SendMail
  {
      private String errMsg = "";
      private ExtendString ExStr = new ExtendString();

      private String sender = "";//发件人地址
      private String smtpHost = "";//邮件发送服务器(smtp)
      private String user = ""; //登录用户名
      private String passWord = "";//登录密码

      private String subject = "";//mail主题

      public SendMail()
      {
          this.setPropertiesAttri();
      }

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

      private void setPropertiesAttri()
      {
          try
          {
              InputStream is = getClass().getResourceAsStream("MailServer.properties");
              Properties prop = new Properties();
  
               prop.load(is);

              this.setSmtpHost(prop.get("SmtpHost").toString());
              this.setUser(prop.get("User").toString());
              this.setPassword(prop.get("Password").toString());
              this.setSender(prop.get("Sender").toString());
              this.setSubject(ExStr.CS(prop.get("Subject").toString()));
          }
          catch(Exception ex)
          {
              System.err.println("ex1 in sendmail.java:"+ex.toString());
          }
      }
      /** 设置发件人地址 */

      public void setSender(String sender)
      {
          this.sender = sender;
      }

      public String getSender()
      {
          return sender;
      }

      /** 设置邮件发送服务器(smtp) */
      public void setSmtpHost(String smtpHost) {this.smtpHost = smtpHost;}
      public String getSmtpHost() {return smtpHost;}

      /** 设置登录用户名 */
      public void setUser(String user)
      {
          this.user = user;
      }
      public String getUser()
      {
          return user;
      }

      /** 设置登录密码 */
      public void setPassword(String password)
      {
          this.password = password;
      }
      public String getPassword()
      {
          return password;
      }

      /** 设置mail主题 */
      public void setSubject(String subject)
      {
          this.subject = subject;
      }
      public String getSubject()
      {
          return subject;
      }

      /**
       * 使用smtp发送邮件 主程序
       * @throws MessagingException mail发送失败
       */
      public void smtp(String receiver,String content) throws MessagingException
  
       {
          if (smtpHost == null) throw new MessagingException("smtpHost not found");
          if (user == null) throw new MessagingException("user not found");
          if (password == null) throw new MessagingException("password not found");

          Properties properties = new Properties();
          properties.put("mail.smtp.host", smtpHost);//设置smtp主机
          properties.put("mail.smtp.auth", "true");//使用smtp身份验证

          Session session = Session.getDefaultInstance(properties,
               new Authenticator(){
                 public PasswordAuthentication getPasswordAuthentication(){
                   return new PasswordAuthentication(user, password);
                 }
               });

          //获得邮件会话对象
          MimeMessage mimeMsg = new MimeMessage(session);//创建MIME邮件对象
          if (sender != null)//设置发件人地址
              {
                  mimeMsg.setFrom(new InternetAddress(sender));
              }
          if (receiver != null)//设置收件人地址
             {
                 mimeMsg.setRecipients(Message.RecipientType.TO, parse(receiver));
             }
          if (subject != null)//设置邮件主题
             {
                 mimeMsg.setSubject(subject, "GBK");
             }
          MimeBodyPart part = new MimeBodyPart();//mail内容部分
          part.setText(content == null ? "" : content, "GBK");

          //设置邮件格式为Html cqc
          part.setContent(content.toString(),"text/html;charset=GBK");
  
           Multipart multipart = new MimeMultipart();
          multipart.addBodyPart(part);//在 Multipart 中增加mail内容部分
          mimeMsg.setContent(multipart);//增加 Multipart 到信息体
          mimeMsg.setSentDate(new Date());//设置发送日期
          Transport.send(mimeMsg);//发送邮件
      }

      /** 解析地址集合字符串 */
      private InternetAddress[] parse(String addressSet) throws AddressException
      {
          ArrayList list = new ArrayList();
          StringTokenizer tokens = new StringTokenizer(addressSet, ";");
          while (tokens.hasMoreTokens())
          {
              list.add(new InternetAddress(tokens.nextToken().trim()));
          }
          InternetAddress[] addressArray = new InternetAddress[list.size()];
          list.toArray(addressArray);
          return addressArray;
      }

      /**
       *  供外部调用的接口
       */
    
      public boolean sendMails(String mail,String content)
      {
          int mailLen = 0 ;
          int contentLen= 0;
          if (mail == nullcontent==null)
          {
              return false;
          }

              try
              {
                  this.smtp(mail,content);
              }
              catch(Exception ex)
              {
                  System.err.println("ex2 in sendmail.java:"+ex.toString());
              }

          return true;
      }

           public static void main (String[] args)
       {
           SendMail mail = new SendMail();
  
            String email = "feng_lei@ecfounder.com;ladofwind@163.com";
           String content = "账号:123 密码:123 br/感谢您注册!br/a href='http://www.xxxx.com.cn' target='_blank'www.xxxx.com.cn/abr/此致br/xxxx br/即日";
           try
           {
               mail.sendMails(email,content);
           }
           catch (Exception ex)
           {
              System.err.println("ex33:"+ex.toString());
           }
       }

  
   }

  编译通过后,在class文件的目录下建立一个文本文件MailServer.properties,
  格式:
  SmtpHost=smtp.163.com
  User=user
  Password=pwd
  Sender=csdn@csdn.com
  Subject=Hello
  
  
  运行程序即可实现邮件发送!

  

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

使用JAVAMAIL发邮件的一个例子(转)

编程语言 网络编程
使用JAVAMAIL发邮件的一个例子(转)

LineDDA的一个例子

编程语言 网络编程
LineDDA的一个例子

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

使用JSP + JAVABEAN + XML 开发的一个例子

Java JAVA基础
使用JSP + JAVABEAN + XML 开发的一个例子

用XMLHTTP很好的一个例子

Web开发
用XMLHTTP很好的一个例子

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

引用一个能发email的JavaMail的例子

编程语言 网络编程
引用一个能发email的JavaMail的例子

断开的数据库连接的一个例子

ASP
断开的数据库连接的一个例子

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JS对HTML标签select的操作

JS对HTML标签select的操作

运用Jakarta Struts的七大实战心法(1)

运用Jakarta Struts的七大实战心法(1)
下拉加载更多内容 ↓