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

📄 sendmail.java

📁 一个学习程序
💻 JAVA
字号:
package WebMail;
/**
 * <p>Title: 企业邮箱管理系统</p>
 * <p>Description: 收发邮件_发邮件Bean</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: 南京仕邦有限公司</p>
 * @author W.L.B
 * @version 1.0
 */

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


public class sendMail{

private MimeMessage mimeMsg;
private Multipart mp;

private Session session;
private Properties props;
private boolean needAuth = false;
private boolean needCc = false;
private boolean needBcc = false;
private String userName = "";
private String passWord = "";
public String [] strFileName = null;

public sendMail(){
    java.nio.charset.Charset ch = java.nio.charset.Charset.forName("ISO8859-1");

  }

public void setSmtpHost(String hostName) {
  if(props == null)
    props = System.getProperties();
  props.put("mail.smtp.host",hostName);
  //props.put("mail.smtp.auth","true");
}

public boolean createMimeMessage(String usr,String passWord)
{
  try{
    session = Session.getInstance(props,new PopupAuthenticator(usr,passWord));
  }
  catch(Exception e){
    System.err.println("创建SESSION错误!"+e);
    return false;
  }
  try{
    mimeMsg = new MimeMessage(session);
    mp = new MimeMultipart();
    return true;
  }
  catch(Exception e){
    System.err.println("创建MIME错误!"+e);
    return false;
  }
}

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

public void setNamePass(String name,String pass) {
  userName = name;
  passWord = pass;
}


public boolean setSubject(String mailSubject) {
  try{
 //   mailSubject = Mytool.fromChinese(mailSubject,"gb2312");
    mimeMsg.setSubject(mailSubject,"gb2312");
    return true;
  }
  catch(Exception e) {
    System.err.println("设置邮件主題发生错误!");
    return false;
  }
}


public boolean setBody(String mailBody) {
  try{

    mailBody = Mytool.fromChinese(mailBody,"gb2312");
    BodyPart bp = new MimeBodyPart();

    bp.setText(mailBody );
    mp.addBodyPart(bp);
    return true;
 }
 catch(Exception e){
  System.err.println("设置邮件正文时发生错误!"+e);
  return false;
 }
}

public boolean addFile(String filename) {
  //filename = ConvertString(filename);

  try{
    // FileInputStream in = new FileInputStream(filename);
    if (filename ==null)
      return true;
    if (filename == "" )
      return true;
    BodyPart bp = new MimeBodyPart();
    FileDataSource fileds = new FileDataSource(filename);
    bp.setDataHandler(new DataHandler(fileds));
    bp.setFileName(fileds.getName());
    mp.addBodyPart(bp);
    System.out.println("增加邮件附件名:" + filename);
    System.out.println("...");
    return true;
  }
  catch(Exception e){
    System.err.println("增加邮件附件:"+filename+"发生错误!"+e);
    return false;
  }
}

public boolean setFrom(String from) {

  from = Mytool.getStr(from);
  System.out.println("发件人 : "+from);
  try{
    mimeMsg.setFrom(new InternetAddress(from));
    return true;
  }
  catch(Exception e)
      { return false; }
}

    /**
     * 收件人
     * @param to
     * @return
     */
public boolean setTo(String to){
  if(to == "")return false;
  if(to == null)return false;
  try{
    to = Mytool.fromChinese(to,"gb2312");
    mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
    return true;
  }
  catch(Exception e)
      { return false; }
}

 /**
  * 抄送
  * @param copyto
  * @return
  */
public boolean setCopyTo(String copyto)
{
  if(copyto == "")return false;
  try{
    copyto = Mytool.fromChinese(copyto,"gb2312");
    mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));
    return true;
  }
  catch(Exception e)
      { return false; }
}

 /**
  * 暗送
  * @param copyto
  * @return
  */

public boolean setBCCopyTo(String copyto)
{
  if(copyto == "")return false;
  try{
    copyto = Mytool.fromChinese(copyto,"gb2312");
    mimeMsg.setRecipients(Message.RecipientType.BCC,(Address[])InternetAddress.parse(copyto));
    return true;
  }
  catch(Exception e)
      { return false; }
}

////////////////////////
public boolean sendout()
{
  try{
    mimeMsg.setContent(mp);
    mimeMsg.setSentDate(new Date());

    System.out.println("正在发送邮件....");

    Session mailSession = Session.getInstance(props,null);
    Transport transport = mailSession.getTransport("smtp");
    transport.connect((String)props.get("mail.smtp.host"),userName,passWord);
    transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
    if (needCc)
    transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC));
    if (needBcc)
    transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.BCC));
    ///transport.send(mimeMsg);
    System.out.println("邮件发送成功!");
    System.out.println("...");

    transport.close();

    return true;
  }
  catch(Exception e)
  {
    System.err.println("邮件发送失败!"+e);
    session = null;  //transport.close();
    return false;
  }
}

public int sendMsg(String Host,String usr,String pass,String from,String To,String Cc,String Bcc,
                   String Subject,String Content,String filename)
{
  int intbk = -1;
  Object[] obj = Mytool.separateFileName(To,';');
  for (int i=0;i<obj.length ; i++)
  {
    System.out.println("收件人:"+(String)obj[i] );
    System.out.println("...");
    sendMsg(Host,usr,pass,from,(String)obj[i],Cc,Bcc,Subject,Content);

    System.out.println("附件:"+filename);
    System.out.println("...");
    filename = filename.trim();
    if(filename.equals(null) ) filename ="";
    if (!filename.equals(""))
          getAttachFileName(filename) ;

    if(sendout() == false) intbk= -1;
  }
  return 0;
}

public int sendMsg(String Host,String usr,String pass,String from,String To,String Cc,String Bcc,
                   String Subject,String Content)
{
  Host = Host.trim();usr = usr.trim();pass = pass.trim();
  if (To == null) To="";  if (Cc == null) Cc=""; if (Bcc== null) Bcc="";
  if (Subject == null) Subject =""; if (Content == null) Content ="";

  setSmtpHost(Host);
  createMimeMessage(usr,pass);
  setNamePass(usr,pass);
  setNeedAuth(true);

  if( setFrom(from) == false) return -1;
  if( setTo(To) == false) return -1;
  if (Cc.trim() != "" )
  {
    needCc = true;
    setCopyTo(Cc);
  }
  if (Bcc.trim() != "" )
  {
    needBcc = true;
    setBCCopyTo(Bcc) ;
  }

  setSubject(Subject);
  setBody(Content) ;

  return 0;
}

public boolean getAttachFileName(String filename)
{
  Object[] obj = Mytool.separateFileName(filename,',');
  strFileName = new String[obj.length];
  for (int i = 0 ;i<obj.length; i++)
  {
    strFileName[i] = (String)obj[i];
    if (strFileName[i].length() > 0 )
      if (addFile(strFileName[i])==false)
        return false;
  }
  return true;
}

public static String ConvertString(String str)
{
  return Mytool.toChinese(str,"ISO8859_1");
}

/**
*   测试用
*/
public static void main(String[] args) {
  sendMail  themail = new sendMail();
  // 参数(String Host,String usr,String pass,String from,String To,
  //     String Cc,String Bcc,String Subject,String Content,String filename)

  themail.sendMsg("hiaward.com","WOO","asdc","woo@hiaward.com","woo@hiaward.com","","","我---好“","有dddd意思","c:/aaa.txt");
  // themail.getAttachFileName("c:\\config.sys,c:\\count.txt");
  // if(themail.sendout() == false) return;
}

//End
}

⌨️ 快捷键说明

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