引入:最近项目中要做一个简单的邮件功能,即从前台输入邮件内容,去配置文件中读取发件人、收件人等信息后,然后发送邮件到指定的邮箱,其中收件人和抄送人可以有多个,基于这个需求,查询了相关资料,决定采用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 主要是用于对密码进行加密和解密
- package sendmail;
 - /**
 - * Module: Encrypt.java
 - * Description: 对密码进行加密和解密
 - * Company:
 - * Author: ptp
 - * Date: Mar 6, 2012
 - */
 - public class Encrypt
 - {
 - public static final int pass1 = 10;
 - public static final int pass2 = 1;
 - public Encrypt()
 - {
 - }
 - /**
 - * @Title: DoEncrypt
 - * @Description: 对密码进行加密的方法
 - * @param @param str
 - * @param @return 设定文件
 - * @return String 返回类型
 - * @throws
 - */
 - public static String DoEncrypt(String str)
 - {
 - StringBuffer enStrBuff = new StringBuffer();
 - for (int i = 0; i < str.length(); i++)
 - {
 - int tmpch = str.charAt(i);
 - tmpch ^= 1;
 - tmpch ^= 0xa;
 - enStrBuff.append(Integer.toHexString(tmpch));
 - }
 - return enStrBuff.toString().toUpperCase();
 - }
 - /**
 - * @Title: DoDecrypt
 - * @Description: 对密码进行解密的方法
 - * @param @param str
 - * @param @return 设定文件
 - * @return String 返回类型
 - * @throws
 - */
 - public static String DoDecrypt(String str)
 - {
 - String deStr = str.toLowerCase();
 - StringBuffer deStrBuff = new StringBuffer();
 - for (int i = 0; i < deStr.length(); i += 2)
 - {
 - String subStr = deStr.substring(i, i + 2);
 - int tmpch = Integer.parseInt(subStr, 16);
 - tmpch ^= 1;
 - tmpch ^= 0xa;
 - deStrBuff.append((char)tmpch);
 - }
 - return deStrBuff.toString();
 - }
 - public static void main(String args[])
 - {
 - String source = "123456";
 - String s = DoEncrypt(source);
 - System.out.println("de=" + s);
 - source = DoDecrypt(s);
 - System.out.println("en=" + source);
 - }
 - }
 
MailInfo.java javabean定义邮件需要的字段以及对应的get和set方法
- package sendmail;
 - /**
 - *Module: MailInfo.java
 - *Description: 定义发送邮件的所有字段的javabean
 - *Company:
 - *Author: ptp
 - *Date: Mar 1, 2012
 - */
 - public class MailInfo{
 - private String host;// 邮件服务器域名或IP
 - private String from;// 发件人
 - private String to;// 收件人
 - private String cc;// 抄送人
 - private String username;// 发件人用户名
 - private String password;// 发件人密码
 - private String title;// 邮件的主题
 - private String content;// 邮件的内容
 - public String getHost() {
 - return host;
 - }
 - public void setHost(String host) {
 - this.host = host;
 - }
 - public String getFrom() {
 - return from;
 - }
 - public void setFrom(String from) {
 - this.from = from;
 - }
 - public String getTo() {
 - return to;
 - }
 - public void setTo(String to) {
 - this.to = to;
 - }
 - public String getCc() {
 - return cc;
 - }
 - public void setCc(String cc) {
 - this.cc = cc;
 - }
 - public String getUsername() {
 - return username;
 - }
 - public void setUsername(String username) {
 - this.username = username;
 - }
 - public String getPassword() {
 - return password;
 - }
 - public void setPassword(String password) {
 - this.password = password;
 - }
 - public String getTitle() {
 - return title;
 - }
 - public void setTitle(String title) {
 - this.title = title;
 - }
 - public String getContent() {
 - return content;
 - }
 - public void setContent(String content) {
 - this.content = content;
 - }
 - }
 
                


