生活已是百般艰难,为何不努力一点。下面图老师就给大家分享用JavaMail发送带附件的Email,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。
【 tulaoshi.com - 编程语言 】
注重:本文只打算讨论JavaMail收发带附件邮件的一些技巧,所以只是给出部分代码。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)1.发送带附件的邮件
我们平时发送的邮件主要可以分解成2大部分,一个是发信人,接信人,主题等邮件标头,另外一部分是邮件内容,它包括了邮件的附件。我们在发送普通邮件的时候content设置的类型是"text/Html",带上附件后,我们需要把content的类型设置成Multipart,这时content包括了附件和"text/html"类型的正文。下面的这个告诉大家如何把附件放置到邮件中。
  private Multipart getMultipart() throws MessagingException,UnsupportedEncodingException 
  {
   MimeMultipart mp = new MimeMultipart();
   try 
    { 
   //设置content里的内容
   MimeBodyPart contentMbp = new MimeBodyPart(); 
   //请指定字符集,否则会是乱码 
   contentMbp.setContent(_mailContent.getContent(), "text/html; charset=GB2312");
   mp.addBodyPart(contentMbp); //添加附件
   for (int i=0;i_mailAttachment.getAttachPath().size();i++) 
   {
    MimeBodyPart mbp = new MimeBodyPart();
    FileDataSource fds = new FileDataSource((String) _mailAttachment.getAttachPath().get(i)); 
    mbp.setDataHandler(new DataHandler(fds)); 
    mbp.setFileName(MimeUtility.encodeWord(fds.getName(), "GB2312",null)); 
    mp.addBodyPart(mbp);
   }
    } 
    catch(MessagingException ie)
    { 
   System.out.println("Set Content Message error..."+ie.getMessage());
   throw ie;
    }
    catch(UnsupportedEncodingException ie) 
    {
   System.out.println("Encode the fileName error..."+ie.getMessage());
   throw ie;
    }
    return mp; 
  } 
  
  放置附件的注重事项如下:
  
  在发mail时需要注重字符集的问题。不但content里要设置,而且文件名也需要设置。假如我们去掉mbp.setFileName(MimeUtility.encodeWord(fds.getName(),"GB2312",null));这句话,那么你选中的附件还是会带到邮件里,但是在附件里看不到。我们可以通过查看邮件大小知道。我们利用这个特点来实现发送content中写的是html语言,而且包含图片信息的邮件。
  
                        
来源:http://www.tulaoshi.com/n/20160219/1610821.html
看过《用JavaMail发送带附件的Email》的人还看了以下文章 更多>>