网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.WebLogic UDDI Client API实例学.
.JBuilder2006破解补丁.
.如何打造实用网站.
.java 1.4中工具的改变和更新.
.在Java中使用反射分析类结构.
.log 方法.
.屏保中的“曲线”解密技巧.
.JAVA学习经验之谈.
.关于applet写入文件的处理.
.参数上溯造型解决了错误的方法调.
.JAVA进阶 JAVA中具有实例缓存的不.
.在CMPP2.0 协议SP端的.NET开发.
.浅析Java语言中两种异常的差别.
.Java程序编码规范.
.用软引用阻止内存泄漏.
.JAVA里字符编码的探索与理解.
.java Classpath全解.
.Jini设备及其应用实例.
.使用HttpURLConnection访问web页.
.int与byte array之间的转换程序.

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

发表日期:2008-1-5


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

        程序:

import Java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

/**
 * <p>Title: 简易MailBean</p>
 * <p>Description: 提供简便的Mail发送功能(/p>
 * <p>Copyright: 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());
        }
    }
    /** 设置发件人地址 */

    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</a><br/>此致<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


运行程序即可实现邮件发送!


上一篇:实现基于Spring框架应用的权限控制系统 人气:1486
下一篇:基于Java的界面布局DSL的设计与实现 人气:625
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐