温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

雪山飞鹄

温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

BlogJava 首页 新随笔 联系 聚合 管理
  215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

 

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(既欧莱里公司提供的文件上传包)
posted on 2009-11-05 15:15 雪山飞鹄 阅读(783) 评论(0)  编辑  收藏 所属分类: javase

只有注册用户登录后才能发表评论。


网站导航: