JavaMail示列代码

JavaMail示列代码

 

package  com.fengjing.javamail;

import  java.util.Date;
import  java.util.Properties;

import  javax.activation.DataHandler;
import  javax.activation.FileDataSource;
import  javax.mail.Address;
import  javax.mail.Message;
import  javax.mail.Multipart;
import  javax.mail.Session;
import  javax.mail.Transport;
import  javax.mail.Message.RecipientType;
import  javax.mail.internet.InternetAddress;
import  javax.mail.internet.MimeBodyPart;
import  javax.mail.internet.MimeMessage;
import  javax.mail.internet.MimeMultipart;

import  sun.misc.BASE64Encoder;

public   class  SendMail {

 
public   static   void  main(String[] args)  throws  Exception{

  Properties props
= new  Properties();
  
// 设置采用邮箱认证
  props.setProperty( " mail.smtp.auth " " true " );
  
// 获得session
  Session session = Session.getInstance(props);
  
// 设置调试信息
  session.setDebug( true );
  
// 创建message
  Message message = new  MimeMessage(session);
  
  
// 对message做些配置
  
// 邮件主题
  message.setSubject( " 这是用javamail写得带附件的邮件 " );
  
// 邮件发送人
  message.setFrom( new  InternetAddress( " *****@163.com " ));
  
// 发送时间
  message.setSentDate( new  Date());
  
// 设置收件人
   /**
   * RecipientType.TO 指定邮件发送类型
   * RecipientType.TO 直接发送
   * RecipientType.CC 抄送
   * RecipientType.BCC 暗送
   * new Address[]{} 邮件接收人列表
   
*/
  message.addRecipients(RecipientType.TO, 
new  Address[]{
    
new  InternetAddress( " *******@sohu.com " )
  });
  
  
// 使用message中的setText()方法发送文本文件
  
// message.setText("邮件正文");
   /**
   * "<span style='color:red'>这是用javamail发送的邮件正文</span>" 邮件内容
   * "text/html;charset=utf-8" 指定编码
   
*/
  
// message.setContent("<span style='color:red'>这是用javamail发送的邮件正文</span>", "text/html;charset=utf-8");
  
  
/** ********创建带附件的邮件******************* */
  
  
// 创建Multipart对象,最后将Multipart对象添加到message中
  Multipart multipart = new  MimeMultipart();
  
// 创建MimeBodyPart对象
  MimeBodyPart mimeBodyPart = new  MimeBodyPart();
  
// 设置附件内容
  FileDataSource fds = new  FileDataSource( " d:\\5.jpg " );
  
// 设置附件的名字
  
  
/** ******************处理附件中文名乱码************************** */
 
  sun.misc.BASE64Encoder enc 
=   new  sun.misc.BASE64Encoder(); 
  
// System.out.println(enc.encode("徐熙媛.jpg".getBytes()));
  mimeBodyPart.setFileName( " =?GB2312?B? " + enc.encode( " 徐熙媛.jpg " .getBytes()) + " ?= " );
 
  
// 处理附件
  mimeBodyPart.setDataHandler( new  DataHandler(fds));
  
  multipart.addBodyPart(mimeBodyPart);
  
  
/** ******设置邮件正文内容******* */
  
  
// 新创建MimeBodyPart对象,否则正文将会覆盖掉附件内容
  mimeBodyPart = new  MimeBodyPart();
  
// 设置邮件正文内容
  mimeBodyPart.setContent( " <span style='color:red'>这是用javamail发送的邮件正文</span> " " text/html;charset=utf-8 " );
  
// 将MimeBodyPart添加到Multipart中
  multipart.addBodyPart(mimeBodyPart);
 
  
// 将multipart添加到message中
  message.setContent(multipart);

  
// 创建传输对象
  Transport transport = session.getTransport( " smtp " );
  
// 配置连接信息
   /**
   * smtp.sohu.com 指定主机
   * 25 端口号
   * sxyx 用户名
   * ******** 密码
   
*/
  transport.connect(
" smtp.sohu.com " 25 " sxyx " " ******* " );
  
// 发送消息
   /**
   * message 消息内容
   * message.getAllRecipients() 收件人地址  
   * 返回
   * message.addRecipients()方法中指定的邮件接收人列表
   
*/
  transport.sendMessage(message, message.getAllRecipients());
  transport.close();
 }

}

文中提到的base64编码其实可以替换为cos.jar(既欧莱里公司提供的文件上传包)

你可能感兴趣的:(JavaMail示列代码)