知识大全 Java发邮件带附件测试通过

Posted

篇首语:于今腐草无萤火,终古垂杨有暮鸦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java发邮件带附件测试通过相关的知识,希望对你有一定的参考价值。

Java发邮件带附件测试通过  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  package cn bric crm util;

  import java util Date;

  import java util Enumeration;

  import java util Properties;

  import java util Vector;

  import javax activation *;

  import javax mail Authenticator;

  import javax mail Message;

  import javax mail Multipart;

  import javax mail PasswordAuthentication;

  import javax mail Session;

  import javax mail Transport;

  import javax mail internet InternetAddress;

  import javax mail internet MimeBodyPart;

  import javax mail internet MimeMessage;

  import javax mail internet MimeMultipart;

  import javax mail internet MimeUtility;

  import java io FileInputStream;

  import java io IOException;

  import java text ParseException;

  import java util ArrayList;

  import java util Date;

  import java util HashSet;

  import java util Iterator;

  import java util List;

  import java util Locale;

  import java util Set;

  import java util regex Pattern;

  /**

  * <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)

  this to = to;

  this from = from;

  this host = smtpServer;

  this username = username;

  this password = password;

  this subject = subject;

  ntent = content;

  

  /**

  * <br>

  * 方法说明 设置邮件服务器地址 <br>

  * 输入参数 String host 邮件服务器地址名称 <br>

  * 返回类型

  */

  public void setHost(String host)

  this host = host;

  

  /**

  * <br>

  * 方法说明 设置登录服务器校验密码 <br>

  * 输入参数 <br>

  * 返回类型

  */

  public void setPassWord(String pwd)

  this password = pwd;

  

  /**

  * <br>

  * 方法说明 设置登录服务器校验用户 <br>

  * 输入参数 <br>

  * 返回类型

  */

  public void setUserName(String usn)

  this username = usn;

  

  /**

  * <br>

  * 方法说明 设置邮件发送目的邮箱 <br>

  * 输入参数 <br>

  * 返回类型

  */

  public void setTo(String to)

  this to = to;

  

  /**

  * <br>

  * 方法说明 设置邮件发送源邮箱 <br>

  * 输入参数 <br>

  * 返回类型

  */

  public void setFrom(String from)

  this from = from;

  

  /**

  * <br>

  * 方法说明 设置邮件主题 <br>

  * 输入参数 <br>

  * 返回类型

  */

  public void setSubject(String subject)

  this subject = subject;

  

  /**

  * <br>

  * 方法说明 设置邮件内容 <br>

  * 输入参数 <br>

  * 返回类型

  */

  public void setContent(String content)

  ntent = content;

  

  /**

  * <br>

  * 方法说明 把主题转换为中文 <br>

  * 输入参数 String strText <br>

  * 返回类型

  */

  public String transferChinese(String strText)

  try

  strText = MimeUtility encodeText(new String(strText getBytes()

   GB ) GB B );

   catch (Exception e)

  e printStackTrace();

  

  return strText;

  

  /**

  * <br>

  * 方法说明 往附件组合中添加附件 <br>

  * 输入参数 <br>

  * 返回类型

  */

  public void attachfile(String fname)

  file addElement(fname);

  

  /**

  * <br>

  * 方法说明 发送邮件 <br>

  * 输入参数 <br>

  * 返回类型 boolean 成功为true 反之为false

  */

  public boolean sendMail()

  // 构造mail session

  Properties props = new Properties() ;

  props put( mail smtp host host);

  props put( mail smtp auth true );

  Session session = Session getDefaultInstance(props

  new Authenticator()

  public PasswordAuthentication getPasswordAuthentication()

  return new PasswordAuthentication(username password);

  

  );

  //Session session = Session getDefaultInstance(props);

  //      Session session = Session getDefaultInstance(props null);

  try

  // 构造MimeMessage 并设定基本的值

  MimeMessage msg = new MimeMessage(session);

  //MimeMessage msg = new MimeMessage();

  msg setFrom(new InternetAddress(from));

  //msg addRecipients(Message RecipientType TO address); //这个只能是给一个人发送email

  msg setRecipients(Message RecipientType BCC InternetAddress parse(to)) ;

  subject = transferChinese(subject);

  msg setSubject(subject);

  // 构造Multipart

  Multipart mp = new MimeMultipart();

  // 向Multipart添加正文

  MimeBodyPart mbpContent = new MimeBodyPart();

  mbpContent setContent(content text/;charset=gb );

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

  mp addBodyPart(mbpContent);

  // 向Multipart添加附件

  Enumeration efile = file elements();

  while (efile hasMoreElements())

  MimeBodyPart mbpFile = new MimeBodyPart();

  filename = efile nextElement() toString();

  FileDataSource fds = new FileDataSource(filename);

  mbpFile setDataHandler(new DataHandler(fds));

  mbpFile setFileName(fds getName());

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

  mp addBodyPart(mbpFile);

  

  file removeAllElements();

  // 向Multipart添加MimeMessage

  msg setContent(mp);

  msg setSentDate(new Date());

  msg saveChanges() ;

  // 发送邮件

  Transport transport = session getTransport( smtp );

  nnect(host username password);

  transport sendMessage(msg msg getAllRecipients());

  transport close();

   catch (Exception mex)

  mex printStackTrace();

  //          Exception ex = null;

  //          if ((ex = mex getNextException()) != null)

  //              ex printStackTrace();

  //         

  return false;

  

  return true;

  

  /**

  * <br>

  * 方法说明 主方法 用于测试 <br>

  * 输入参数 <br>

  * 返回类型

  */

  public static void main(String[] args)

  MailUtils sendmail = new MailUtils();

  sendmail setHost( );

  sendmail setUserName( se );

  sendmail setPassWord( bric );

  sendmail setTo( che );

  sendmail setFrom( se );

  sendmail setSubject( 你好 这是测试! );

  sendmail setContent( 你好这是一个带多附件的测试! );

  // Mail sendmail = new

  // Mail( du_jiang 你好 胃 你好吗? );

  sendmail attachfile( d:\\\\news rar );

  sendmail attachfile( d:\\\\jhjl rar );

  System out println(sendmail sendMail());

  

cha138/Article/program/Java/hx/201311/25753

相关参考