熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java發郵件帶附件測試通過

2013-11-23 18:47:59  來源: Java核心技術 

  package cnbriccrmutil;

  import javautilDate;

  import javautilEnumeration;

  import javautilProperties;

  import javautilVector;

  import javaxactivation*;

  import javaxmailAuthenticator;

  import javaxmailMessage;

  import javaxmailMultipart;

  import javaxmailPasswordAuthentication;

  import javaxmailSession;

  import javaxmailTransport;

  import javaxmailinternetInternetAddress;

  import javaxmailinternetMimeBodyPart;

  import javaxmailinternetMimeMessage;

  import javaxmailinternetMimeMultipart;

  import javaxmailinternetMimeUtility;

  import javaioFileInputStream;

  import javaioIOException;

  import javatextParseException;

  import javautilArrayList;

  import javautilDate;

  import javautilHashSet;

  import javautilIterator;

  import javautilList;

  import javautilLocale;

  import javautilSet;

  import javautilregexPattern;

  /**

  * <p>

  * Title: 使用javamail發送郵件

  * </p>

  */

  public class MailUtils {

  String to = ;// 收件人

  String from = ;// 發件人

  String host = ;// smtp主機

  String username = ;

  String password = ;

  String filename = ;// 附件文件名

  String subject = ;// 郵件主題

  String content = ;// 郵件正文

  Vector file = new Vector();// 附件文件集合

  /**

  * <br>

  * 方法說明默認構造器 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public MailUtils() {

  }

  /**

  * <br>

  * 方法說明構造器提供直接的參數傳入 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public MailUtils(String to String from String smtpServer

  String username String password String subject String content) {

  thisto = to;

  thisfrom = from;

  thishost = smtpServer;

  thisusername = username;

  thispassword = password;

  thissubject = subject;

  ntent = content;

  }

  /**

  * <br>

  * 方法說明設置郵件服務器地址 <br>

  * 輸入參數String host 郵件服務器地址名稱 <br>

  * 返回類型

  */

  public void setHost(String host) {

  thishost = host;

  }

  /**

  * <br>

  * 方法說明設置登錄服務器校驗密碼 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public void setPassWord(String pwd) {

  thispassword = pwd;

  }

  /**

  * <br>

  * 方法說明設置登錄服務器校驗用戶 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public void setUserName(String usn) {

  thisusername = usn;

  }

  /**

  * <br>

  * 方法說明設置郵件發送目的郵箱 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public void setTo(String to) {

  thisto = to;

  }

  /**

  * <br>

  * 方法說明設置郵件發送源郵箱 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public void setFrom(String from) {

  thisfrom = from;

  }

  /**

  * <br>

  * 方法說明設置郵件主題 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public void setSubject(String subject) {

  thissubject = subject;

  }

  /**

  * <br>

  * 方法說明設置郵件內容 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public void setContent(String content) {

  ntent = content;

  }

  /**

  * <br>

  * 方法說明把主題轉換為中文 <br>

  * 輸入參數String strText <br>

  * 返回類型

  */

  public String transferChinese(String strText) {

  try {

  strText = MimeUtilityencodeText(new String(strTextgetBytes()

  GB) GB B);

  } catch (Exception e) {

  eprintStackTrace();

  }

  return strText;

  }

  /**

  * <br>

  * 方法說明往附件組合中添加附件 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public void attachfile(String fname) {

  fileaddElement(fname);

  }

  /**

  * <br>

  * 方法說明發送郵件 <br>

  * 輸入參數 <br>

  * 返回類型boolean 成功為true反之為false

  */

  public boolean sendMail() {

  // 構造mail session

  Properties props = new Properties() ;

  propsput(mailsmtphost host);

  propsput(mailsmtpauth true);

  Session session = SessiongetDefaultInstance(props

  new Authenticator() {

  public PasswordAuthentication getPasswordAuthentication() {

  return new PasswordAuthentication(username password);

  }

  });

  //Session session = SessiongetDefaultInstance(props);

  //      Session session = SessiongetDefaultInstance(props null);

  try {

  // 構造MimeMessage 並設定基本的值

  MimeMessage msg = new MimeMessage(session);

  //MimeMessage msg = new MimeMessage();

  msgsetFrom(new InternetAddress(from));

  //msgaddRecipients(MessageRecipientTypeTO address); //這個只能是給一個人發送email

  msgsetRecipients(MessageRecipientTypeBCC InternetAddressparse(to)) ;

  subject = transferChinese(subject);

  msgsetSubject(subject);

  // 構造Multipart

  Multipart mp = new MimeMultipart();

  // 向Multipart添加正文

  MimeBodyPart mbpContent = new MimeBodyPart();

  mbpContentsetContent(content text/html;charset=gb);

  // 向MimeMessage添加(Multipart代表正文)

  mpaddBodyPart(mbpContent);

  // 向Multipart添加附件

  Enumeration efile = fileelements();

  while (efilehasMoreElements()) {

  MimeBodyPart mbpFile = new MimeBodyPart();

  filename = efilenextElement()toString();

  FileDataSource fds = new FileDataSource(filename);

  mbpFilesetDataHandler(new DataHandler(fds));

  mbpFilesetFileName(fdsgetName());

  // 向MimeMessage添加(Multipart代表附件)

  mpaddBodyPart(mbpFile);

  }

  fileremoveAllElements();

  // 向Multipart添加MimeMessage

  msgsetContent(mp);

  msgsetSentDate(new Date());

  msgsaveChanges() ;

  // 發送郵件

  Transport transport = sessiongetTransport(smtp);

  nnect(host username password);

  transportsendMessage(msg msggetAllRecipients());

  transportclose();

  } catch (Exception mex) {

  mexprintStackTrace();

  //          Exception ex = null;

  //          if ((ex = mexgetNextException()) != null) {

  //              exprintStackTrace();

  //          }

  return false;

  }

  return true;

  }

  /**

  * <br>

  * 方法說明主方法用於測試 <br>

  * 輸入參數 <br>

  * 返回類型

  */

  public static void main(String[] args) {

  MailUtils sendmail = new MailUtils();

  sendmailsetHost();

  sendmailsetUserName(se);

  sendmailsetPassWord(bric);

  sendmailsetTo(che);

  sendmailsetFrom(se);

  sendmailsetSubject(你好這是測試!);

  sendmailsetContent(你好這是一個帶多附件的測試!);

  // Mail sendmail = new

  // Mail(du_jiang你好你好嗎?);

  sendmailattachfile(d:\\newsrar);

  sendmailattachfile(d:\\jhjlrar);

  Systemoutprintln(sendmailsendMail());

  }

  }


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25753.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.