技术中心

这里象征着我们的态度和能力

邮件功能开发:JavaMail
作者:中国IT实验室    来源:中国IT实验室    发布时间:2012-03-12      浏览次数:10750
分享到:
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入


    引入:最近项目中要做一个简单的邮件功能,即从前台输入邮件内容,去配置文件中读取发件人、收件人等信息后,然后发送邮件到指定的邮箱,其中收件人和抄送人可以有多个,基于这个需求,查询了相关资料,决定采用JavaMail这个插件来实现。

    preparation:

    1.JavaMail的介绍

    JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。

    虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(JavaDevelopmentKit),这就意味着你在使用前必须另外下载JavaMail文件。除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。JavaBeans Activation Framework的运行很复杂,在这里简单的说就是JavaMail的运行必须得依赖于它的支持。在Windows 2000下使用需要指定这些文件的路径,在其它的操作系统上也类似。

    JavaMail是可选包,因此如果需要使用的话你需要首先从java.sun.com下载。目前最新版本是JavaMail1.4,使用JavaMail的时候需要Javabean Activation Framework的支持,因此你也需要下载JAF。安装JavaMail只是需要把他们加入到CLASSPATH中去,如果你不想修改 CLASSPATH的话,可以直接把他们的jar包直接copy到JAVA_HOME/lib/ext下。这样JavaMail就安装好了。

    JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息

    2.下载jar包

    网上有下载链接,但是这里我还是把jar包给上传

    dom4j.jar 这个jar就不提供下载资源了

    3.项目环境

    system:win7  myeclipse:6.5  tomcat:5.0 JDK:编译和运行都是1.4

为了方便,还是在之前的UpDown项目下运行的,本次用到的文件只有sendmail包下的文件。

4.class&method

请参考:http://www.jspcn.net/htmlnews/1150019680500144.html

start

导入javamail、JAF、dom4j的jar包,然后新建对应的文件如下:

Encrypt.jar  主要是用于对密码进行加密和解密

			
  1. package sendmail;  
  2.    
  3.  /**  
  4.   * Module:      Encrypt.java   
  5.   * Description: 对密码进行加密和解密  
  6.   * Company:   
  7.   * Author:      ptp  
  8.   * Date:        Mar 6, 2012  
  9.   */ 
  10.  public class Encrypt  
  11.  {  
  12.    
  13.      public static final int pass1 = 10;  
  14.      public static final int pass2 = 1;  
  15.    
  16.      public Encrypt()  
  17.      {  
  18.      }  
  19.    
  20.      /**  
  21.       * @Title: DoEncrypt   
  22.       * @Description: 对密码进行加密的方法  
  23.       * @param @param str  
  24.       * @param @return    设定文件   
  25.       * @return String    返回类型   
  26.       * @throws  
  27.  */ 
  28.      public static String DoEncrypt(String str)  
  29.      {  
  30.          StringBuffer enStrBuff = new StringBuffer();  
  31.          for (int i = 0; i < str.length(); i++)  
  32.          {  
  33.              int tmpch = str.charAt(i);  
  34.              tmpch ^= 1;  
  35.              tmpch ^= 0xa;  
  36.              enStrBuff.append(Integer.toHexString(tmpch));  
  37.          }  
  38.    
  39.          return enStrBuff.toString().toUpperCase();  
  40.      }  
  41.    
  42.      /**  
  43.       * @Title: DoDecrypt   
  44.       * @Description: 对密码进行解密的方法  
  45.       * @param @param str  
  46.       * @param @return    设定文件   
  47.       * @return String    返回类型   
  48.       * @throws  
  49.  */ 
  50.      public static String DoDecrypt(String str)  
  51.      {  
  52.          String deStr = str.toLowerCase();  
  53.          StringBuffer deStrBuff = new StringBuffer();  
  54.          for (int i = 0; i < deStr.length(); i += 2)  
  55.          {  
  56.              String subStr = deStr.substring(i, i + 2);  
  57.              int tmpch = Integer.parseInt(subStr, 16);  
  58.              tmpch ^= 1;  
  59.              tmpch ^= 0xa;  
  60.              deStrBuff.append((char)tmpch);  
  61.          }  
  62.    
  63.          return deStrBuff.toString();  
  64.      }  
  65.    
  66.      public static void main(String args[])  
  67.      {  
  68.          String source = "123456";  
  69.          String s = DoEncrypt(source);  
  70.          System.out.println("de=" + s);  
  71.            
  72.          source = DoDecrypt(s);  
  73.          System.out.println("en=" + source);  
  74.    
  75.      }  
  76.  } 

MailInfo.java javabean定义邮件需要的字段以及对应的get和set方法

  1. package sendmail;  
  2.    
  3.  /**  
  4.   *Module:       MailInfo.java  
  5.   *Description:  定义发送邮件的所有字段的javabean  
  6.   *Company:        
  7.   *Author:       ptp  
  8.   *Date:         Mar 1, 2012  
  9.   */ 
  10.  public class MailInfo{  
  11.      private String host;// 邮件服务器域名或IP  
  12.      private String from;// 发件人  
  13.      private String to;// 收件人  
  14.      private String cc;// 抄送人  
  15.      private String username;// 发件人用户名  
  16.      private String password;// 发件人密码  
  17.      private String title;// 邮件的主题  
  18.      private String content;// 邮件的内容  
  19.        
  20.      public String getHost() {  
  21.          return host;  
  22.      }  
  23.      public void setHost(String host) {  
  24.          this.host = host;  
  25.      }  
  26.      public String getFrom() {  
  27.          return from;  
  28.      }  
  29.      public void setFrom(String from) {  
  30.          this.from = from;  
  31.      }  
  32.      public String getTo() {  
  33.          return to;  
  34.      }  
  35.      public void setTo(String to) {  
  36.          this.to = to;  
  37.      }  
  38.      public String getCc() {  
  39.          return cc;  
  40.      }  
  41.      public void setCc(String cc) {  
  42.          this.cc = cc;  
  43.      }  
  44.      public String getUsername() {  
  45.          return username;  
  46.      }  
  47.      public void setUsername(String username) {  
  48.          this.username = username;  
  49.      }  
  50.      public String getPassword() {  
  51.          return password;  
  52.      }  
  53.      public void setPassword(String password) {  
  54.          this.password = password;  
  55.      }  
  56.      public String getTitle() {  
  57.          return title;  
  58.      }  
  59.      public void setTitle(String title) {  
  60.          this.title = title;  
  61.      }  
  62.      public String getContent() {  
  63.          return content;  
  64.      }  
  65.      public void setContent(String content) {  
  66.          this.content = content;  
  67.      }  
  68.        
  69.  } 

[1] [2] [3] 下一页

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号 增值电信业务经营许可证号:滇B2-20110045
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730