|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
论坛
想学好编程,学好外语很重要 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
JAVA文章
>>
JavaAPI
>> 文章正文
用JavaMail API编写可带附件的邮件发送程序
热
荐
【字体:
小
大
】
用JavaMail API编写可带附件的邮件发送程序
作者:佚名 文章来源:不详 点击数: 更新时间:2006-4-16
利用Sun公司提供的JavaMail API可以很方便的开发邮件发送程序。也许你已经可以利用它来发送一段简单的文本了,但想不想使你的程序像OUTLOOK一样也能发送附件呢?本文在简单介绍了JavaMail之后,详细讲解了一段完整的送信的JavaBean及一个十分轻巧的servlet。
<BR><BR>(没有装载JavaMail API的读者,可以到<a href="www.
java
soft.com" target=_blank>此站点</a>下载,并按照Readme.txt设置好ClassPath)
<BR>
<strong>一、JavaMail中一些我们需要的类</strong>
<BR>
1.Properties
<BR><BR>JavaMail需要Properties来创建一个session对象,其属性值就是发送邮件的主机,如:
<BR><BR><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF"><tr><td bgcolor="e6e6e6" class="code">Properties props = new Properties ();<br>props.put("mail.smtp.host", "smtp.xxxx.com");//可以换上你的smtp主机名,就像你在OutLook中设置smtp主机名一样。</td></tr></table>
<BR>
2.Session
<BR><BR>所有的基于JavaMail的程序都至少需要一个或全部的对话目标。
<BR><BR><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF"><tr><td bgcolor="e6e6e6" class="code">Session session = Session.getInstance(props, null);</td></tr></table>
<BR>
3.MimeMessage
<BR><BR>信息对象将把你所发送的邮件真实的反映出来。
<BR><BR><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF"><tr><td bgcolor="e6e6e6" class="code">MimeMessage msg = new MimeMessage(session);</td></tr></table>
<BR>
4.Transport
<BR><BR>邮件的发送是由Transport来完成的:
<BR><BR><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF"><tr><td bgcolor="e6e6e6" class="code">Transport.send(msg);</td></tr></table>
<BR>
<strong>二、我们自己创建的可发送附件的类</strong>
<BR>
<table width=580 border=1 cellspacing=0 cellpadding=0 bordercolorlight = "black" bordercolordark = "#FFFFFF"><tr><td bgcolor=e6e6e6 class=code>import
java
.util.* ;<br>import
java
.io.* ;<br>import
java
x.mail.* ;<br>import
java
x.mail.internet.* ;<br>import
java
x.activation.* ;<br>public class Mail {<br>//定义发件人、收件人、主题等<br>String to="";<br>String from="";<br>String host="";<br>String filename="";<br>String subject="";<br>//用于保存发送附件的文件名的集合<br>Vector file = new Vector();<br>//做一个可以传发件人等参数的构造<br>public Mail (String to,String from,String smtpServer,String subject){<br>//初始化发件人、收件人、主题等<br>this.to=to;<br>this.from=from;<br>this.host=smtpServer;<br>this.subject=subject;<br>}<br>//该方法用于收集附件名<br>public void attachfile(String fname){<br>file.addElement(fname);<br>}<br>//开始发送信件的方法<br>public boolean startSend(){<br>//创建Properties对象<br>Properties props = System.getProperties();<br>//创建信件服务器<br>props.put("mail.smtp.host", host);<br>//得到默认的对话对象<br>Session session=Session.getDefaultInstance(props, null); try {<br>//创建一个消息,并初始化该消息的各项元素<br>MimeMessage msg = new MimeMessage(session);<br>msg.setFrom(new InternetAddress(from));<br>InternetAddress[] address={new InternetAddress(to)};<br>msg.setRecipients(Message.RecipientType.TO,address);<br>msg.setSubject(subject);<br>//后面的BodyPart将加入到此处创建的Multipart中<br>Multipart mp = new MimeMultipart();<br>//利用枚举器方便的遍历集合<br>Enumeration efile=file.elements();<br>//检查序列中是否还有更多的对象<br>while(efile.hasMoreElements()){<br>MimeBodyPart mbp=new MimeBodyPart();<br>//选择出每一个附件名<br>filename=efile .nextElement().toString();<br>//得到数据源<br>FileDataSource fds=new FileDataSource(filename);<br>//得到附件本身并至入BodyPart<br>mbp.setDataHandler(new DataHandler(fds));<br>//得到文件名同样至入BodyPart<br>mbp.setFileName(fds.getName());<br>mp.addBodyPart(mbp);<br>}<br>//移走集合中的所有元素<br>file.removeAllElements();<br>//Multipart加入到信件<br>msg.setContent(mp);<br>//设置信件头的发送日期<br>msg.setSentDate(new Date());<br>//发送信件<br>Transport.send(msg);<br>} catch (MessagingException mex) {<br>mex.printStackTrace();<br>Exception ex = null;<br>if ((ex=mex.getNextException())!=null){<br>ex.printStackTrace();<br>}<br>return false;<br>}<br>return true;<br>}<br>}</td></tr></table>
[1]
[2]
[3]
下一页
文章录入:enadd 责任编辑:enadd
上一篇文章:
利用JAVA API函数实现数据的压缩与解压缩
下一篇文章: 没有了
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
利用JAVA API函数实现数据的…
API文件产生器-javadoc.exe
Java Servlet基本方法介绍 J…
JDBC2.0扩展API(1)
JDBC2.0扩展API(2)
JDBC2.0扩展API(3)
JDBC2.0扩展API(4)
Java Servlet API说明文档(…
Java Servlet API说明文档(…
Java Servlet API说明文档(…
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
QQ:1656107
站长:
enadd