当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

<b>用JavaMail发送带附件的Email</b>[Java编程]

赞助商链接



  本文“<b>用JavaMail发送带附件的Email</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

随着网络利用的不断奉行,电子邮件越来越多的被大家利用.固然我们常常将电子邮件与 Foxmail、Outlook 这样的电子邮件客户端接洽起来,但是常常我们也需求自己编程实现发送接纳邮件,比方在一个网站注册用户后网站发出的回执mail,大概在网络购物的时刻,在完成订单后的几分钟之内发送确认电子邮件.关于这样的需求,我们不能通过已有的邮件客户端而需求自己编写邮件发送大概处理程序.在这里向大家讲授一下若何操纵JavaMail来实现邮件的收发.

注意:本文只打算谈论JavaMail收发带附件邮件的一些本领,所以只是给出部份代码.

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语言,并且包含图片信息的邮件.


  以上是“<b>用JavaMail发送带附件的Email</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .