Chinaunix首页 | 论坛 | 博客
  • 博客访问: 374359
  • 博文数量: 152
  • 博客积分: 6020
  • 博客等级: 准将
  • 技术积分: 850
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-11 19:20
文章分类

全部博文(152)

文章存档

2017年(1)

2010年(1)

2007年(3)

2006年(147)

我的朋友

分类: BSD

2006-04-17 23:39:38

 继续以新浪为例,发附件要用到上传的组件,O'Reilly公司的cos.jar。请将cos.jar、mail.jar和activation.jar,放到你的WEB应用程序的WEB-INF/lib目录下。
测试用的JavaMail3.html


  JavaMail3.html




利用JavaMail来发送电子邮件 - 附件



  

寄信人:


  

收信人:


  

主题:


  

格式:
Text
HTML
           


  

附件:

         
  

内容:


  
  
  




处理附件与邮件的JavaMail3.jsp
<%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<%@ page import="javax.activation.*" %>
<%@ page import="java.util.*,java.io.*" %>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page contentType="text/html;charset=GB2312" %>



  CH17 - JavaMail2.jsp



利用JavaMail来发送电子邮件 - 附件



<%
InternetAddress[] address = null;

request.setCharacterEncoding("gb2312");
MultipartRequest multi = new MultipartRequest(request , "." , 5*1024*1024 , "GB2312");

String mailserver   = "smtp.sina.com.cn";
String From         = multi.getParameter("From");
String to           = multi.getParameter("To");
String Subject      = multi.getParameter("Subject");
String type     = multi.getParameter("Type");
String messageText  = multi.getParameter("Message");
String FileName     = multi.getFilesystemName("FileName");

   boolean sessionDebug = false;

try {

   // 设定所要用的Mail 服务器和所使用的传输协议
   java.util.Properties props = System.getProperties();
 
   props.put("mail.host",mailserver);
   props.put("mail.transport.protocol","smtp");
             props.put("mail.smtp.auth", "true");//指定是否需要SMTP验证

   // 产生新的Session 服务
   javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,null);
  mailSession.setDebug(sessionDebug);
   Message msg = new MimeMessage(mailSession);
   // 设定发信人
   msg.setFrom(new InternetAddress(From));
     // 设定收信人
   address = InternetAddress.parse(to,false);
   msg.setRecipients(Message.RecipientType.TO, address);
     // 设定信中的主题 
   msg.setSubject(Subject);
     // 设定送信的时间
   msg.setSentDate(new Date());

   if (FileName != null)
   {
        File file = new File(FileName);
              
   // 如果有附件,先将邮件内容部分存起来
           MimeBodyPart mbp1 = new MimeBodyPart();
      
     // 设定邮件内容的类型为 text/plain 或 text/html
   mbp1.setContent(messageText, type + ";charset=GB2312");

           // 再来对附件作处理
           MimeBodyPart mbp2 = new MimeBodyPart();
           FileDataSource fds = new FileDataSource(FileName);
           mbp2.setDataHandler(new DataHandler(fds));
           mbp2.setFileName(MimeUtility.encodeText(fds.getName(), "GB2312", "B"));

           // 最后再将两者整合起来,当作一份邮件送出
           Multipart mp = new MimeMultipart();
           mp.addBodyPart(mbp1);
           mp.addBodyPart(mbp2);
           msg.setContent(mp);
    }
    else
    {
           // 若没有附件时,就直接存邮件内容
           msg.setContent(messageText,type + ";charset=GB2312");
    }             
              Transport transport = mailSession.getTransport("smtp");
              //请填入你邮箱的用户名和密码,千万别用我的^_^。
              transport.connect(mailserver, "zz3zcwb", "1234567");
              transport.sendMessage(msg, msg.getAllRecipients());
              transport.close();
  out.println("邮件已顺利发送");

}
     catch (MessagingException mex) 
     {
 out.println(mex);
         mex.printStackTrace();
}
%>


发个附件给我吧!
阅读(773) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~