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

2016-02-19 20:07 2 1 收藏

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

【 tulaoshi.com - 编程语言 】

          首先引入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();
      }

      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());
          }
      }
      /** 设置发件人地址 */

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

      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");

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

          //设置邮件格式为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
  
  
  运行程序即可实现邮件发送!

  


来源:https://www.tulaoshi.com/n/20160219/1622780.html

延伸阅读
当使用设备调节控制相机上热靴闪光灯的输出时,应该尽量遵循关于光线的基本原则:光源越大,光线越柔和。 使用当今市场上无数柔光罩中的任何一种都会帮你获得柔和的光线。这些灯具把相机自带闪光灯的光扩散得比用其他方式都要广,而且使光线比直接闪光柔和很多。当然,这些柔光罩也会向前打光。这使得光线不仅柔和,而且平滑。相比而言,我...
Public Overloads Sub Update(ByVal authorityArr As IList) log.Debug("Update a record in table TBL_M_AUTHORITY") Dim connection As OracleConnection = New OracleConnection(OraHelper.CONN_STRING_LOCAL) Dim command As OracleCommand = New OracleCommand(PLSQL_UPDATE, connection) command.CommandType = CommandType....
标签: ASP
<%''本程序文件名为:Pages.asp% <%''包含ADO常量表文件adovbs.inc,可从"\Program Files\Common Files\System\ADO"目录下拷贝% <!--#Include File="adovbs.inc"-- <%''*建立数据库连接,这里是Oracle8.05数据库 Set conn=Server.CreateObject("ADODB.Connection") conn.Open "Provider=msdaora.1;Data Source=YourSrcName;User ...
标签: ASP
  这是一个网友在论坛上问的一个问题。大体上在javascript中用xmlhttp读取一个xml文件: xml文件内容如下:   <?xml version="1.0" encoding="gb2312"? <RECORDS    <CATEGORY_CARS    <RECORD       <URLhttp://shanghai.kijiji.com.cn/classifieds/ViewAd-W0QQAdI...
标签: PHP
  一个颜色轮换的简单例子,使用三元运算子,使程序简练。 我们曾经在网站上看过一些表格单元格的背景颜色是隔行变化的,其实用下面一段很小的一段代码就可以实现: $color=(($coloralter++ %2)? "e0e0e0":"e8e8e8") ,即通过将变量累加和2取余,运用三元运算子来取得两个不同得颜色值。 示例如下: <html <...

经验教程

289

收藏

45
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部