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

JSP中发送邮件【Z】

阅读更多

Jakarta发布了Commons Emails 1.0 released 版本,目的是为了简化JavaMail。

知道有它几个class吗?你一定想不到,只有8个!

好了,开始我们的jakarta commons emails 之旅:)

一:Quick Start
通过SimpleEmail发送邮件

1 java.lang.Object
2   org.apache.commons.mail.Email
3       org.apache.commons.mail.SimpleEmail

 

1 SimpleEmail email  =   new  SimpleEmail();
2 email.setHostName( " mail.4ya.cn " );
3 email.setAuthentication( " <username> " , " <password> " )
4 email.addTo( " martin.xus@gmail.com " " martin " );
5 email.setFrom( " martin@4ya.cn " " martin " );
6 email.setSubject( " 测试主题 " );
7 email.setMsg( " 这里是邮件内容 " );
8 email.send();


就如代码里字面上的意思一样简单:
1:创建以SimpleEmail对象
2:设定发送信件的smtp服务器,如果没有设定,会寻找系统变量中mail.host值。
3:设定smtp的用户和密码
4:收件人
5:发件人
6:主题
7:内容
8:发送

二:发送带附件的邮件
我们可以发送本机的附件,当然我们也可以发送非本机的附件,如果发送的是一个存在网络上的附件的url,则邮件发送的时候会自动下载,添加到附件中。

   1:)发送本地附件:

1 EmailAttachment attachment  =   new  EmailAttachment();
2 attachment.setPath( " test/test.rar " );
3 attachment.setDisposition(EmailAttachment.ATTACHMENT);
4 attachment.setDescription( " python resource " );
5 attachment.setName( " resource " );


   2:)发送不存在本地的附件

1 EmailAttachment attachment  =   new  EmailAttachment();
2 attachment.setURL( new  URL( " http://www.smilinglibrary.org/sldoc/pics/index03.jpg " ));
3 attachment.setDisposition(EmailAttachment.ATTACHMENT);
4 attachment.setDescription( " 微笑图书馆 " );
5 attachment.setName( " 微笑图书馆 " );



next,添加附件到我们的邮件中

 1 MultiPartEmail email  =   new  MultiPartEmail();
 2 email.setHostName( " mail.4ya.cn " );
 3    email.setAuthentication(" <username> " , " <password> " )
 4 email.addTo( " martin.xus@gmail.com " " martin " );
 5 email.setFrom( " martin@4ya.cn " " martin " );
 6 email.setSubject( " 邮件主题 " );
 7 email.setMsg( " 邮件内容 " );

 8 // 添加附件
 9 email.attach(attachment);
10
11 // 发送邮件
12 email.send();


如果需要发送多个附件,只需创建多个EmailAttachement,即可

1 email.attach(attachment1)
2 email.attach(attachment2)


三:发送html格式的邮件
通过HtmlEmail我们可以发送Html格式的邮件:

1 java.lang.Object
2   org.apache.commons.mail.Email
3       org.apache.commons.mail.MultiPartEmail
4           org.apache.commons.mail.HtmlEmail
5


如下:

 1 // HtmlEmail!
 2 HtmlEmail email  =   new  HtmlEmail();
 3 email.setHostName( " mail.4ya.cn " );
 3   email.setAuthentication(" <username> " , " <password> " )
 5 email.addTo("martin@4ya.cn " martin " );
 6 email.setFrom("martin.xus@gmail.com " martin " );
 7 email.setSubject( "主题:该邮件包括html格式内容 " );
 
 8 //  embed the image and get the content id
 9 //  注意这里:embed 将帮助我们创建标签如:cid:xxx url
10 URL url  =   new  URL( " http://www.apache.org/images/asf_logo_wide.gif " );
11 String cid  =  email.embed(url,  " Apache logo " );
12
13 /**
14 set the html message
15 我们看到HtmlEmail extends Email的,它依然有setMsg(),但是这里发送的邮件包括了插入在邮件内容中的图片,所以不能在使用了setMsg(),而要以setHtmlMsg 或setTextMsg代码
16 * */

17 email.setHtmlMsg( " <html>The apache logo - <img src=\ " cid: " +cid+ " \ " ></html> " );
18
19 //  set the alternative message
20 email.setTextMsg( " Your email client does not support HTML messages " );
21
22 // set mail
23 email.send();
24


四:最后一步
如果需要实现更复杂authenticator 你可以extends javax.mail.Authenticator ,实现你自己的东西,然后调用Email.setAuthenticator(javax.mail.Authenticator newAuthenticator)即可

这一点jakarta也做了,给我们提供了一个defaultAuthenticator

1 java.lang.Object
2   javax.mail.Authenticator
3       org.apache.commons.mail.DefaultAuthenticator

覆盖掉该方法,实现你自己的东东 o_o
1 protected  javax.mail.PasswordAuthentication getPasswordAuthentication()

分享到:
评论

相关推荐

    Java数据库编程宝典2

    16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、JDBC和XML 第17章 XML文档对象模型和JDBC ...

    Java数据库编程宝典4

    16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、JDBC和XML 第17章 XML文档对象模型和JDBC ...

    Java数据库编程宝典1

    16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、JDBC和XML 第17章 XML文档对象模型和JDBC ...

    Java数据库编程宝典3

    16.3.1 使用JSP页面和JavaMail发送电子邮件 16.3.2 使用有SendMailBean的JSP页面 16.3.3 部署 16.4 使用JavaMail API接收电子邮件 16.5 小结 第4部分 数据库、JDBC和XML 第17章 XML文档对象模型和JDBC ...

    互联网创意产品众筹平台

    │ 11-附录1.JS中局部变量和全局变量区别 │ d( L, Z2 p" ] ├─众筹项目-第05天《Atcrowdfunding》) A% ]3 K. N. T& e) [7 J │ ├─代码 │ ├─笔记 │ └─视频2 @8 e5 L% ~) b6 _) f. H: i │ 1-用户管理模块-...

    基于java SpringMVC的心理咨询预约管理系统源码.zip

    SpringMVC,jsp视图,前台Bootstrap 工具版本 mysql5.7,JDK1.8,Tomcat8.5 主要功能模块 分为三个端:管理员、来访者(需要预约的人),咨询师 管理员端 首页系统近况(咨询师和注册来访者数量,预约数量) ...

    基于javaweb开发的心理咨询预约管理系统源码+项目使用说明+sql数据库(毕设源码).zip

    MVC模式,普通Servlet控制器,jsp视图,前台Bootstrap 工具版本:mysql5.7,JDK1.8,Tomcat8.5 ## 主要功能模块 分为三个端:管理员、来访者(需要预约的人),咨询师 **管理员**端 * 首页 系统近况(咨询师...

    网管教程 从入门到精通软件篇.txt

    EML:Microsoft Outlook Express邮件消息(MIME RTC822)文件 EXE:可执行文件(程序) F FAV:Microsoft Outlook导航条 FAX:传真类型图像 FCD:虚拟CD-ROM FDF:Adobe Acrobat表单文档文件 FLA:Macromedia...

Global site tag (gtag.js) - Google Analytics