知识大全 Java发送邮件

Posted

篇首语:勤奋是你生命的密码,能译出你一部壮丽的史诗。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java发送邮件相关的知识,希望对你有一定的参考价值。

Java发送邮件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  记得曾经学习用javamail发邮件 学了 天 大概搞明白了利用javamail发邮件的方法和注意事项

  这周末在网上闲逛时 发现了另外一个发邮件的好东东

  mons email jar: 这是Apache组织下的一个项目 主要就是对java的邮件功能进行了封装 用起来更加方便 简单

  接下来我们就说说这个jar包

  首先肯定得下载mons email jar 并下载mail jar和activation jar(它们可以从sun的网站上下载 从下载的javamail和jaf中找到)

  如果没有mail jar 则会有 Exception in thread main java lang NoClassDefFoundError: javax/mail/Message 这样的错误提示

  如果没有activation jar 则会有 Exception in thread main java lang NoClassDefFoundError: javax/activation/DataSource 这样的错误提示

  下面是一个简单的测试

  Java代码

  Java代码

  import mons mail EmailException;

  import mons mail SimpleEmail;

  public class Send

  

  public Send()

  

  

  public static void main(String[] args)

  

  send();

  

  public static void send()

  

  SimpleEmail email = new SimpleEmail();

  email setTLS(true);

  email setHostName( );

  email setAuthentication( *** *** );   //用户名和密码

  try

  

  email addTo( l ); //接收方

  email setFrom( lif );       //发送方

  email setSubject( Java Mail Test );         //标题

  email setMsg( Just a simple send test );   //内容

  email send();

   catch (EmailException e)

  e printStackTrace();

  

  

  

  import mons mail EmailException;

  import mons mail SimpleEmail;

  public class Send

  

  public Send()

  

  

  public static void main(String[] args)

  

  send();

  

  public static void send()

  

  SimpleEmail email = new SimpleEmail();

  email setTLS(true); //是否TLS校验 某些邮箱需要TLS安全校验 同理有SSL校验

  //      email setSSL(true);

  email setHostName( );

  email setAuthentication( *** *** );   //用户名和密码

  try

  

  email addTo( l ); //接收方

  email addCc( ); //抄送方

  email addBcc( ); //秘密抄送方

  email setSubject( Java Mail Test );         //标题

  email setMsg( Just a simple send test );   //内容

  email send();

   catch (EmailException e)

  e printStackTrace();

  

  

  

  上面的邮件标题和内容用的都是英文 如果改为中文呢?我试了一下 结果邮件标题不是乱码 而邮件内容则中文部分是乱码 设置其charSet为GB 或者UTF 后就可以发送中文邮件了 显示正常了 如下面的代码

  Java代码

  Java代码

  import mons mail EmailException;

  import mons mail SimpleEmail;

  public class Send

  

  public Send()

  

  

  public static void main(String[] args)

  

  send();

  

  public static void send()

  

  SimpleEmail email = new SimpleEmail();

  email setTLS(true);

  email setHostName( );

  email setAuthentication( lif sdzzczqqyyxy );

  try

  

  email addTo( l );

  email setFrom( lif );       //我方

  email setSubject( Java发送邮件测试 );                 //标题

  email setCharset( GB );                     //设置Charset

  email setMsg( 这是一封Java程序发出的测试邮件 );     //内容

  email send();

   catch (EmailException e)

  e printStackTrace();

  

  

  

  怎么样?简单吧~~~

  有人这时说到了网页邮件 其实只需要把上面SimpleEmail换成HtmlEmail 然后设置邮件内容的方法由setMsg(String str)变为setHtmlMsg(String str)就可以了 这样就可以再邮件里使用<br/>等标签来控制邮件的格式了

  还有人问 那么附件呢?别急 我们马上就来做个带附件发送的代码

  Java代码

  import MalformedURLException;

  import URL;

  import mons mail EmailAttachment;

  import mons mail EmailException;

  import mons mail MultiPartEmail;

  publicclass AttachmentMailTest

  publicstaticvoid main(String[] args) throws EmailException MalformedURLException

  //     创建一个Email附件

  EmailAttachment emailattachment = new EmailAttachment();

  emailattachment setPath( /biao_ jpg );

  //     emailattachment setURL(new URL( ));

  emailattachment setDisposition(EmailAttachment ATTACHMENT);

  emailattachment setDescription( This is Smile picture );

  emailattachment setName( bulktree );

  //     创建一个email

  MultiPartEmail multipartemail = new MultiPartEmail();

  multipartemail setHostName( );

  multipartemail addTo( bulktree );

  multipartemail setFrom( bulktree );

  multipartemail setAuthentication( bulktree );

  multipartemail setSubject( This is a attachment Email );

  multipartemail setMsg( this a attachment Eamil Test );

  //添加附件

  multipartemail attach(emailattachment);

  //发送邮件

  multipartemail send();

  System out println( The attachmentEmail send sucessful!!! );

  

  

  就这样 附件也发送成功了 大家可以试一下 另外这个项目是开源的 大家可以取下载它的src来看看 我暂时就说到这儿

  不过用这个mons email jar实现发邮件还是有 个值得注意的地方:

   前面提到mail jar和activation jar包的问题 这两个包需要额外下载并且必不可少的两个包

   不知是否是我使用错误或者软件环境导致 我在第一次使用时 出现了一个奇怪的异常:

  Java代码

  Exception in thread main java lang NoClassDefFoundError: /sun/mail/util/LineInputStream

  在网上有人说是因为JavaEE版本和JavaMail的版本不一致导致的 我用的是jdk 查了半天 没找到是哪里冲突了 于是我建web项目时 选择 版本 于是没有出现任何问题 可以正常使用 估计应该是myeclipse建项目时自带的jar包引起了这个问题 我用的是myeclipse 不知道在eclipse或其他版本的myeclipse上是否会出现这个问题 如果有知道缘由的朋友 请多指教

  高手的分割线~

  ————————————————————————————————————

  万分感谢黑毛 (有人如是说 黑色头发简称黑毛 ) 老紫竹 孙yujia

  接收邮件

  Exception in thread main java lang NoClassDefFoundError: /sun/mail/util/LineInputStream

  当出现以上错误时 恭喜您已经离接收邮件不远了 否则请您解决好所有的异常后再来看这个帖子

  javax mail和javax activation这两个包已经在javaEE 当中属于基础包了 就是JDK中自带了已经 但是里面的方法与现在外面的mail jar和activation jar有一些出入 所以初学者在直接copy别人代码的时候往往会出现上面的错误

  废话不多说下面是解决方法

  进到

  X:\\Program Files\\MyEclipse \\myeclipse\\eclipse\\plugins\\ genuitere_ zmyeclipse \\data\\libraryset\\EE_

  这个路径里 可以看到javaee jar 用rar把这个文件打开 然后进到javax文件夹里 删除mail jar和activation jar(我的javaee jar里 这两个东西是文件夹 总之删掉就OK 不过要注意备份一下)

cha138/Article/program/Java/hx/201311/26102

相关参考

知识大全 java实现邮件发送

  要实现邮箱的发送需要一个已知账号和密码的邮箱并且开通了STMPPOP服务常见主流邮箱邮件收取和发送popstmp服务配置汇总介绍一文中详细介绍了各个邮箱开通服务的步骤  &nb

知识大全 java如何发送电子邮件?

cha138/Article/program/Java/JSP/201404/30613

知识大全 基于SMTP的JAVA邮件发送程序

基于SMTP的JAVA邮件发送程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这个程序没有使

知识大全 在Java中发送邮件的一个相当完善的脚本

在Java中发送邮件的一个相当完善的脚本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  pack

知识大全 邮件发送组件

  先添加引入命名空间SystemNetMail  组件代码:  ///<summary>  ///邮件发送组件  ///</summary>  publicclassEmai

知识大全 .NET邮件发送

.NET邮件发送  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  usingSystem;&nbs

知识大全 使用JavaMail 实现邮件发送

使用JavaMail实现邮件发送  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   im

知识大全 QQ三国会员 邮件发送附件能发送三国币吗拜托各位大神

QQ三国会员邮件发送附件能发送三国币吗拜托各位大神  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!QQ

知识大全 如何使用JSP来发送邮件

如何使用JSP来发送邮件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MESSAGEJSP  

知识大全 从asp.net页面发送电子邮件

  我们经常看到在一些博客页面里可以发表评论通过电子邮件通知版主(例如咱们的博客园)那么如何用发送电子邮件呢?我们可以借助NET提供的强大的类库达到目的  首先我们要引入SystemWebMail命名