<%@ page contentType="text/html; charset=gb2312"%> 自己写的邮件代码,难得!!!
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
自己写的邮件代码,难得!!!
     发布者:付刚 发布时间:2006-08-23

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

/*
class PopupAuthenticator extends Authenticator{
   private String username, password;
   
   public PopupAuthenticator(String user,String pass){
      username = user;
      password = pass;
   }
   
   public PasswordAuthentication getPasswordAuthentication(){
      
      
      String result = JOptionPane.showInputDialog("Enter 'username,password'");
      StringTokenizer st = new StringTokenizer(result, ",");
      username = st.nextToken();
      password = st.nextToken();

      return new PasswordAuthentication(username, password);
   }
}
*/

public class SMTP {

   private Properties props = System.getProperties();
   private Session       session    = null;
   private Transport       transport    = null;
   //private Message       msg         = null;
   private MimeMessage    msg         = null;
   private MimeMultipart    mm         = new MimeMultipart();
   private MimeBodyPart    mbp         = new MimeBodyPart();
   
   private String auth     = "false";
   private final static String mailer     = "netkiller";
   private String username    = null;
   private String password    = null;
   
   private String host       = null;
   private String from       = null;
   private String to       = null;
   private String cc       = "";
   private String bcc       = "";
   private String subject     = "";
   private String text        = "";
   private String footer    = "";
   
   private boolean debug     = false;
   
   public SMTP() {
   }
   public void createSession() throws Exception {
       session = Session.getInstance(props, null);
      session.setDebug(debug);      
      transport = session.getTransport("smtp");
      transport.connect(host, username, password);
       msg = new MimeMessage(session);         
   }
   
   public void setDebug(boolean debug) throws Exception {
      this.debug = debug;
   }
   public void setSmtpHost(String str) throws Exception {
      this.host = str;
      props.put("mail.smtp.host", host);
   }
   
   public void setAuth(boolean auth){
      if(auth){
         props.put("mail.smtp.auth", "true");
      }
   }
   public void setUsername(String user){
      this.username = user;
      props.put("mail.smtp.user",username);      
   }
   public void setPassword(String pass){
      this.password = pass;   
      props.put("mail.smtp.password",password);
   }

   public String getUsername(){
      return this.username;
   }
   public String getPassword(){
      return this.password;   
   }
   
   public void setFrom(String str) throws Exception {
      this.from = str;
      msg.setFrom(new InternetAddress(from));
   }   
   
   public void setTo(String str) throws Exception{
      this.to   = str;   
       msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to, false));   
   }
   public void setCC(String str) throws Exception{
      this.cc   = str;   
      msg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc, false));
   }
   public void setBCC(String str) throws Exception{
      this.bcc   = str;   
      msg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(bcc, false));            
   }
   public void setSubject(String str) throws Exception{
      this.subject = str;
      msg.setSubject(subject);
   }

   public void setText(String str) throws Exception{
      this.text = str;
      this.text += this.footer;
      
//      msg.setText(this.text);
      BodyPart bp = new MimeBodyPart();
      bp.setContent(text,"text/plain; charset=gb2312");
      mm.addBodyPart(bp);
      msg.setContent(mm);
   }
   
   public void setFooter(String str){
      this.footer = str;
   }

    public void setHtml(String str) throws Exception{
      StringBuffer sb = new StringBuffer();
      sb.append("<HTML>\n");
      sb.append("<HEAD>\n");
      sb.append("<TITLE>\n");
      sb.append(subject + "\n");
      sb.append("</TITLE>\n");
      sb.append("</HEAD>\n");
   
      sb.append("<BODY>\n");
      sb.append("<H1>" + subject + "</H1>" + "\n");
   
       sb.append(str);
       sb.append(this.footer);

       sb.append("\n");
   
      sb.append("</BODY>\n");
      sb.append("</HTML>\n");
   
      this.text = sb.toString();
      
      BodyPart bp = new MimeBodyPart();
      bp.setContent(text,"text/html; charset=gb2312");
      mm.addBodyPart(bp);
      msg.setContent(mm);
    }      
   

   public boolean addFileAffix(String filename) {
      boolean bool   = false;
      try{
         BodyPart bp = new MimeBodyPart();
         FileDataSource fds = new FileDataSource(filename);
         bp.setDataHandler(new DataHandler(fds));
         //bp.setFileName(fds.getName());
         bp.setFileName(MimeUtility.encodeWord(fds.getName(), "GB2312",null));
         bp.setHeader("Content-ID",fds.getName());
         mm.addBodyPart(bp);
         //msg.setContent(mm);
         bool = true;
       }
       catch(Exception e){
         System.err.println("增加邮件附件:"+filename+"发生错误!"+e);
       }
      System.out.println("增加邮件附件:"+filename);
      return bool;
   }
   
   public void send(){

      try{
          msg.setHeader("X-Mailer", mailer);
          msg.setSentDate(new Date());
           transport.sendMessage(msg, msg.getAllRecipients());
         System.out.println("Mail was recorded successfully.");

         } catch (MessagingException e) {
            //e.printStackTrace();
             System.out.println(e.toString());
      }
   }
   public static void main(String[] args) {
      try{
         SMTP am = new SMTP();
         am.setDebug(true);
         
         am.setSmtpHost("mail.9812.net");
         am.setAuth(true);
         
         am.setUsername("netkiller@9812.net");
         am.setPassword("*******");
         
         am.createSession();
         
         am.setFrom("netkiller@9812.net");
         am.setTo("netkiller@9812.net");
         am.setCC("xnetkiller@netscape.net");
         am.setBCC("netkillers@sohu.com");
         
         am.setSubject("hi netkiller");
         am.setText("<a href=xxx><img src='cid:product_price_chart.png'>ddddddddddddddddd</a>");
         am.setHtml("陈景峰<br>"+"<a href=xxx><img src='cid:product_price_chart.png'></a>");
         //HTML <img src='file.jpg'> 在邮件内容里要改为 cid:file.jpg
         am.setFooter("\n<br>====================\n<br>netkiller");
         am.addFileAffix("c:/product_price_chart.png");
         am.addFileAffix("c:/gomine.properties");
         
         am.send();
      }
      catch(Exception e){
         System.err.println(e.toString());
         //e.printStackTrace();
      }
   }   
}

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
weblogic上配置Hibernate
SQL常用方法
数据仓库基础二,数据仓库环境
数据仓库基本概念之一, 决策支持系统(DSS)的发展
js“树”读取xml数据(转)
对于struts的一点感触
 
最近评论:
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(3028)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(8554)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号