`
lc52520
  • 浏览: 369110 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

javaMail【Z】

    博客分类:
  • java
阅读更多

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

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

首先肯定得下载commons-email-1.1.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代码  收藏代码
  1. Java代码  
  2. import  org.apache.commons.mail.EmailException;       
  3. import  org.apache.commons.mail.SimpleEmail;       
  4.       
  5. public   class  Send        
  6. {       
  7.     public  Send()       
  8.     {       
  9.                
  10.     }       
  11.            
  12.     public   static   void  main(String[] args)       
  13.     {       
  14.         send();       
  15.     }       
  16.            
  17.     public   static   void  send()       
  18.     {       
  19.         SimpleEmail email = new  SimpleEmail();          
  20.         email.setTLS(true );               
  21.         email.setHostName("smtp.gmail.com" );             
  22.         email.setAuthentication("***@gmail.com" "***" );    //用户名和密码        
  23.                
  24.         try         
  25.         {       
  26.             email.addTo("lifangxin2050@163.com" );  //接收方        
  27.             email.setFrom("lifangxin2050@gmail.com" );        //发送方          
  28.             email.setSubject("Java Mail Test" );          //标题           
  29.             email.setMsg("Just a simple send test ." );    //内容           
  30.             email.send();        
  31.                    
  32.         } catch  (EmailException e) {       
  33.             e.printStackTrace();       
  34.         }        
  35.     }       
  36. }     
  37.   
  38. import  org.apache.commons.mail.EmailException;    
  39. import  org.apache.commons.mail.SimpleEmail;    
  40.    
  41. public   class  Send     
  42. {    
  43.     public  Send()    
  44.     {    
  45.             
  46.     }    
  47.         
  48.     public   static   void  main(String[] args)    
  49.     {    
  50.         send();    
  51.     }    
  52.         
  53.     public   static   void  send()    
  54.     {    
  55.         SimpleEmail email = new  SimpleEmail();       
  56.         email.setTLS(true );  //是否TLS校验,,某些邮箱需要TLS安全校验,同理有SSL校验   
  57. //      email.setSSL(true);           
  58.         email.setHostName("smtp.gmail.com" );          
  59.         email.setAuthentication("***@gmail.com" "***" );    //用户名和密码     
  60.             
  61.         try      
  62.         {    
  63.           email.addTo("lifangxin2050@163.com" );  //接收方     
  64.             email.addCc("ss327@163.com" );  //抄送方       
  65.             email.addBcc("ss377@163.com" );  //秘密抄送方   
  66.             email.setSubject("Java Mail Test" );          //标题        
  67.             email.setMsg("Just a simple send test ." );    //内容        
  68.             email.send();     
  69.                 
  70.         } catch  (EmailException e) {    
  71.             e.printStackTrace();    
  72.         }     
  73.     }    
  74. }  



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

Java代码  收藏代码
  1. Java代码  
  2. import  org.apache.commons.mail.EmailException;    
  3. import  org.apache.commons.mail.SimpleEmail;    
  4.    
  5. public   class  Send     
  6. {    
  7.     public  Send()    
  8.     {    
  9.             
  10.     }    
  11.         
  12.     public   static   void  main(String[] args)    
  13.     {    
  14.         send();    
  15.     }    
  16.         
  17.     public   static   void  send()    
  18.     {    
  19.         SimpleEmail email = new  SimpleEmail();       
  20.         email.setTLS(true );            
  21.         email.setHostName("smtp.gmail.com" );          
  22.         email.setAuthentication("lifangxin2050@gmail.com" "sdzzczqqyyxy" );       
  23.             
  24.         try      
  25.         {    
  26.             email.addTo("lifangxin2050@163.com" );    
  27.             email.setFrom("lifangxin2050@gmail.com" );        //我方        
  28.                 
  29.             email.setSubject("Java发送邮件测试" );                  //标题        
  30.                 
  31.             email.setCharset("GB2312" );                      //设置Charset     
  32.                 
  33.             email.setMsg("这是一封Java程序发出的测试邮件。" );      //内容        
  34.                 
  35.             email.send();     
  36.                 
  37.         } catch  (EmailException e) {    
  38.             e.printStackTrace();    
  39.         }     
  40.     }    
  41. }    



怎么样?简单吧~~~ 
有人这时说到了网页邮件,其实只需要把上面SimpleEmail换成HtmlEmail,然后设置邮件 内容的方法由setMsg(String str)变为setHtmlMsg(String str)就可以了,这样就可以再邮件里使用<br/>等html标签来控制邮件的格式了. 
还有人问,那么附件呢?别急,我们马上就来做个带附件发送的代码 

Java代码  收藏代码
  1. import  java.net.MalformedURLException;  
  2.   
  3. import  java.net.URL;  
  4.   
  5. import  org.apache.commons.mail.EmailAttachment;  
  6.   
  7. import  org.apache.commons.mail.EmailException;  
  8.   
  9. import  org.apache.commons.mail.MultiPartEmail;  
  10.   
  11. publicclass AttachmentMailTest {  
  12.   
  13.     publicstaticvoid main(String[] args) throws  EmailException, MalformedURLException {  
  14.   
  15. //     创建一个Email附件   
  16.   
  17.        EmailAttachment emailattachment = new  EmailAttachment();  
  18.   
  19.        emailattachment.setPath("/biao_05.jpg" );  
  20.   
  21. //     emailattachment.setURL(new URL("http://www.blogjava.net/bulktree/picture/bulktree.jpg"));   
  22.   
  23.        emailattachment.setDisposition(EmailAttachment.ATTACHMENT);  
  24.   
  25.        emailattachment.setDescription("This is Smile picture" );  
  26.   
  27.        emailattachment.setName("bulktree" );  
  28.   
  29. //     创建一个email   
  30.   
  31.        MultiPartEmail multipartemail = new  MultiPartEmail();  
  32.   
  33.        multipartemail.setHostName("smtp.163.com" );  
  34.   
  35.        multipartemail.addTo("bulktree@126.com" "bulktree" );  
  36.   
  37.        multipartemail.setFrom("bulktree@163.com" "bulktree" );  
  38.   
  39.        multipartemail.setAuthentication("bulktree" "123456" );  
  40.   
  41.        multipartemail.setSubject("This is a attachment Email" );  
  42.   
  43.        multipartemail.setMsg("this a attachment Eamil Test" );  
  44.   
  45.        //添加附件   
  46.   
  47.        multipartemail.attach(emailattachment);  
  48.   
  49.        //发送邮件   
  50.   
  51.        multipartemail.send();  
  52.   
  53.       System.out.println("The attachmentEmail send sucessful!!!" );  
  54.     }  
  55. }  



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

不过用这个commons-email-1.1.jar实现发邮件还是有2个值得注意的地方: 
  1.前面提到mail.jar和activation.jar包的问题,这两个包需要额外下载并且必不可少的两个包 
  2.不知是否是我使用错误或者软件环境导致,我在第一次使用时,出现了一个奇怪的异常:

Java代码  收藏代码
  1. Exception in thread  "main"  java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream  



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

分享到:
评论

相关推荐

    javamail-1.4.7.7z

    这个javamail-1.4.7.7z压缩包包含了JavaMail 1.4.7版本的jar文件,使得开发者能够方便地在Java应用程序中实现邮件发送功能。这个jar包不仅适用于常规的Java应用,还可以用于性能测试工具如LoadRunner或负载测试工具...

    javamail1_4_7 (2).7z

    这个“javamail1_4_7 (2).7z”压缩包包含了 JavaMail 1.4.7 版本的库文件,可以在开发基于 Java 的邮件应用时使用。 1. **JavaMail API**: JavaMail 提供了一组接口和类,用于处理电子邮件。这些接口包括 `Session`...

    用javamail发邮件必须的三个jar包.7z

    标题提到的"用javamail发邮件必须的三个jar包.7z"包含了三个核心的JAR文件:mail.jar、activation.jar和additionnal.jar,它们对于JavaMail的邮件发送功能至关重要。 1. **mail.jar**: 这是JavaMail的主要库,包含...

    Java邮件开发Fundamentals of the JavaMail API

    Fundamentals of the JavaMail API Presented by developerWorks, your source for great tutorials ibm.com/developerWorks Table of Contents If you're viewing this document online, you can click ...

    完整代码,基于jsp 邮件开发 javamail

    在这个"完整代码,基于jsp 邮件开发 javamail.7z"的压缩包中,很可能包含了用于演示如何使用JSP和JavaMail API发送邮件的实例代码。 首先,我们需要理解JSP的基础。JSP是一种动态网页技术,它将Java代码嵌入到HTML...

    Java on z/OS

    对于开发Java应用在z/OS上创建PDF文件或发送邮件,存在许多现成的Java类库可以利用,例如iText用于PDF生成,JavaMail用于邮件处理。 在z/OS上开发Java应用不仅需要熟悉Java语言和开发环境,还需要对z/OS系统的运行...

    javax.mail-1.6.0.jar.7z

    标题中的 "javax.mail-1.6.0.jar.7z" 指的是JavaMail 1.6.0版本的jar包,已经压缩成7z格式,用于方便开发者下载和使用。描述中提到的“下载后解压到当前文件夹即可”,意味着开发者可以将这个压缩包解压,并将其包含...

    JavaMailTest111.7z

    在“JavaMailTest111.7z”这个压缩包中,我们可以推测它包含了一个新手教程或者示例项目,用于演示如何使用JavaMail API来实现QQ邮箱和163邮箱的邮件发送与接收,以及附件的下载功能。 在JavaMail的使用过程中,...

    SendEmail.7z

    在Android开发中,有时我们需要实现后台发送邮件的功能,这通常涉及到使用JavaMail API或相关的库来处理SMTP(Simple Mail Transfer Protocol)通信。标题中的"SendEmail.7z"可能是一个包含此类功能的压缩包,它提供...

    ibm-lotus9.0.7z

    在本压缩包“ibm-lotus9.0.7z”中,包含的两个Java JAR文件是用于整合Lotus Domino与Java应用程序,以便实现通过编程方式发送邮件的功能。这种集成对于自动化邮件发送、系统通知或者企业内部通信非常有用。 首先,...

    Java邮箱地址验证 jaev.7z

    "Java邮箱地址验证 jaev.7z"可能是一个包含源代码、示例或者库的压缩包,用于帮助开发者实现这一功能。下面将详细介绍Java中验证电子邮箱地址的相关知识点。 1. **正则表达式验证**: 在Java中,最常用的方法是...

    基于Java的邮件服务器源程序.7z

    4. JavaMail API:JavaMail是Java中处理邮件的核心API,它为开发者提供了与各种邮件服务器通信的接口和类。JavaMail包括`Session`(设置邮件服务器的配置信息)、`Message`(表示邮件对象)、`Address`(表示邮件...

    j2ee14.7z 帮助文档

    **J2EE 1.4 知识点详解** ...通过解压`j2ee14.7z`文件,你可以获取到详细的J2EE 1.4帮助文档,这些文档将深入讲解上述所有知识点,帮助开发者更好地理解和使用J2EE 1.4平台进行企业级应用的开发。

    JavaMai.ljar

    JavaMail 是一个开源的Java库,它为Java程序员提供了处理电子邮件的能力。这个库不仅支持SMTP、POP3和IMAP协议,还支持最新的Email标准如MIME和HTML邮件。`JavaMai.ljar` 文件很可能是一个包含JavaMail库的归档文件...

    基于java语言,springboot框架实现邮件发送.7z

    import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class EmailService { @Autowired private JavaMailSender mailSender; public ...

    Java经典开发大全.7z

    《Java经典开发大全》是一本全面涵盖Java编程技术的资源集合,.7z是一个压缩文件格式,用于存储多个文件和目录。在这个压缩包中,我们能找到一个名为"Java经典开发大全.doc"的文档,很可能是一个关于Java编程的详细...

    Java邮箱验证

    一个基本的Java邮箱验证正则表达式可能是`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`。这个表达式可以匹配大部分常见格式的邮箱地址,但无法覆盖所有特殊情况。例如,它可能无法处理包含国际字符的邮箱。 ...

    quartz定时发送邮件相关jar包&代码.7z

    这个压缩包“quartz定时发送邮件相关jar包&代码.7z”显然是一个包含Quartz库以及示例代码的资源集合,帮助开发者实现定时发送邮件的任务。 首先,让我们详细了解Quartz的核心概念: 1. **Job**:在Quartz中,Job...

    PRO4C1:Programming z hodiny

    9. **Java库和API**:如Java Swing和JavaFX用于图形用户界面(GUI)开发,JDBC用于数据库连接,JavaMail用于邮件发送等。 10. **Java 8及更高版本的新特性**:例如lambda表达式、流API、方法引用、日期和时间API等...

    JAVA 脚本应用数据

    JavaMail则是Java中用于处理电子邮件的API库,它提供了发送、接收邮件的功能。 在Java中,脚本应用数据主要涉及以下几个方面: 1. **Java Scripting API (JSR 223)**:这是Java标准版中的一个部分,定义了如何在...

Global site tag (gtag.js) - Google Analytics