⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendmail.java

📁 WAP PUSH后台源码,WAP PUSH后台源码
💻 JAVA
字号:
package com.sxit.wap.staff;

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

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class sendmail {

  private MimeMessage mimeMsg;              //MIME邮件对象
  private Session session;                  //邮件会话对象
  private Properties props;                 //系统属性
  private boolean needAuth = false;         //smtp是否需要认证
  private String username = "";             //smtp认证用户名和密码
  private String password = "";
  private String hostName = "";
  private String[] toUrl;
  private String fromUrl = "";
  private String content = "";
  private Multipart mp;                     //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象

  public sendmail(String username,String password,String hostName,String[] toUrl,String fromUrl,String content){
    this.username = username;
    this.password = password;
    this.hostName = hostName;
    this.toUrl = toUrl;
    this.fromUrl = fromUrl;
    this.setSmtpHost();
    this.content = content;
    this.createMimeMessage();
  }

  private void setSmtpHost() {
    System.out.println("设置系统属性:mail.smtp.host = "+hostName);
    if(props == null)props = System.getProperties();         //获得系统属性对象
    props.put("mail.smtp.host",hostName);                 //设置SMTP主机
  }

  private boolean createMimeMessage(){
    try {
          session = Session.getDefaultInstance(props, null); //获得邮件会话对象
        }catch (Exception e) {
          System.err.println("获取邮件会话对象时发生错误!" + e);
          return false;
        }
   try {
          mimeMsg = new MimeMessage(session); //创建MIME邮件对象
          mp = new MimeMultipart();
          return true;
        }catch (Exception e) {
          System.err.println("创建MIME邮件对象失败!" + e);
          return false;
        }
  }

  private void setNeedAuth(boolean need) {
    System.out.println("设置smtp身份认证:mail.smtp.auth = "+need);
    if(props == null)props = System.getProperties();
    if(need){
      props.put("mail.smtp.auth","true");
    }else{
      props.put("mail.smtp.auth","false");
    }
  }

  public boolean setSubject(String mailSubject) {
    System.out.println("设置邮件主题!");
    try{
      mimeMsg.setSubject(mailSubject,"GB2312");
      return true;
    }catch(Exception e) {
      System.err.println("设置邮件主题发生错误!");
      return false;
    }
  }

  public boolean setBody(String mailBody) {
    try{
        BodyPart bp = new MimeBodyPart();
        bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=gb2312>"+mailBody,"text/html;charset=GB2312");
        mp.addBodyPart(bp);
        return true;
     }catch(Exception e){
      System.err.println("设置邮件正文时发生错误!"+e);
      return false;
    }
  }

  public boolean addFileAffix(String filename) {
 System.out.println("增加邮件附件:"+filename);
 try{
      BodyPart bp = new MimeBodyPart();
      FileDataSource fileds = new FileDataSource(filename);
      bp.setDataHandler(new DataHandler(fileds));
      System.out.println(fileds.getName());
      bp.setFileName(new String(fileds.getName().getBytes(),"GB2312"));
      mp.addBodyPart(bp);
      return true;
    }catch(Exception e){
      System.err.println("增加邮件附件:"+filename+"发生错误!"+e);
      return false;
    }
  }

  public boolean setFrom(String from) {
      System.out.println("设置发信人!");
      try{
        mimeMsg.setFrom(new InternetAddress(from));             //设置发信人
        return true;
      }
      catch(Exception e)
      { return false; }
    }

 public boolean setTo(String to){
   if(to == null)return false;

   try{
     mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
     return true;
   }catch(Exception e){
     return false;
   }
 }
public boolean setTo(String[] to){
   if(to == null)return false;
      try{
        InternetAddress[] rec = new InternetAddress[to.length];
        for (int i = 0; i < to.length; i++) {
          rec[i] = new InternetAddress(to[i]);
        }
          mimeMsg.setRecipients(Message.RecipientType.TO, rec);
         return true;
      }catch(Exception ex){
         return false;
      }
}
 public boolean setCopyTo(String copyto){
   if(copyto == null)return false;
   try{
     mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));
     return true;
   }
   catch(Exception e) {
     return false;
   }
 }

 public boolean sendout()
{
  try{
    mimeMsg.setContent(mp);
    mimeMsg.saveChanges();
    System.out.println("正在发送邮件....");
    Session mailSession = Session.getInstance(props,null);
    Transport transport = mailSession.getTransport("smtp");
    try{
      transport.connect( (String) props.get("mail.smtp.host"), username,
                        password);
      transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
    }catch(Exception ex){
       transport.close();
       this.setNeedAuth(!needAuth);
       transport.connect( (String) props.get("mail.smtp.host"), username,
                        password);
           transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
    }
    System.out.println("11111111111111111111111");

    //transport.send(mimeMsg);
    System.out.println("发送邮件成功!");
    transport.close();
    return true;
  }catch(javax.mail.AuthenticationFailedException e){
    System.err.println("认证失败!"+ e);
    return false;
  }catch(javax.mail.MessagingException ex){
    System.err.println("初始化错误!"+ ex);
    ex.printStackTrace();
    return false;
  }
}
 public boolean startmail(){
   this.setNeedAuth(needAuth);
   if(this.setSubject("测试")==false)return false;
   if(this.setBody(this.content)==false)return false;
   if(this.setTo(this.toUrl)==false)return false;
   if(this.setFrom(this.fromUrl)==false)return false;
  // if(this.addFileAffix("D://命名规则.txt")==false)return false;

   if(this.sendout()==false) return false;
   else
   return true;
 }
 public static void main(String[] args){
   String[] t = {"wanggang@sxit.com.cn"};
   String f = "13316996852@gd165.com";
   String content = "你好,见到你真高兴";
   sendmail send = new sendmail("13316996852","790810","mail.gd165.com",t,f,content);
   send.startmail();
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -