基于JavaMail API收发邮件的方法
本文实例讲述了基于javamail api收发邮件的方法。分享给大家供大家参考。具体如下:
1.javamail api按其功能划分通常可分为如下三大类
(1)创建和解析邮件内容的api :message类是创建和解析邮件的核心api,它的实例对象代表一封电子邮件。
(2)发送邮件的api:transport类是发送邮件的核心api类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如smtp协议。
(3)接收邮件的api:store类是接收邮件的核心api类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如pop3协议。
2. session类
session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。session对象根据这些信息构建用于邮件收发的transport和store对象,以及为客户端创建message对象时提供信息支持。
3.使用javamail发送一封简单的邮件
创建包含邮件服务器的网络连接信息的session对象。
创建代表邮件内容的message对象。
创建transport对象、连接服务器、发送message、关闭连接。
4.实例
(1)javamail邮件只发送内容
public class sendmail { public static void main(string[] args) throws exception { //属性文件 properties props=new properties(); //设置邮件的发送主机名、发送协议和是否验证 props.setproperty("mail.host","smtp.sohu.com" ); props.setproperty("mail.transport.protocol", "smtp"); props.setproperty("mail.smtp.auth", "true"); //获取发送接收邮件环境的对象 session session=session.getinstance(props); message message=createmessage(session); //创建发送邮件的对象 transport tsp=session.gettransport(); tsp.connect("jb51", "jb51"); tsp.sendmessage(message, message.getallrecipients()); tsp.close(); } public static message createmessage(session session) throws exception{ //根据环境对象创建一份邮件 mimemessage message=new mimemessage(session); //设置邮件属性 message.setfrom(new internetaddress("jb51@sohu.com")); message.setrecipient(message.recipienttype.to,new internetaddress("jb51@sina.com")); message.setsubject("hello"); //创建邮件体 mimebodypart text=new mimebodypart(); text.setcontent("你好?","text/html;charset=utf-8"); //设置描述关系 mimemultipart mm=new mimemultipart(); mm.addbodypart(text); message.setcontent(mm); message.savechanges(); return message; } }
(2)javamail邮件发送内容和图片
public class sendimagemail { public static void main(string[] args) throws exception { //属性文件 properties props=new properties(); //设置邮件的发送主机名、发送协议和是否验证 props.setproperty("mail.host","smtp.sohu.com" ); props.setproperty("mail.transport.protocol", "smtp"); props.setproperty("mail.smtp.auth", "true"); //获取发送接收邮件环境的对象 session session=session.getinstance(props); message message=createmessage(session); //创建发送邮件的对象 transport tsp=session.gettransport(); tsp.connect("jb51", "jb51"); tsp.sendmessage(message, message.getallrecipients()); tsp.close(); } public static message createmessage(session session) throws exception{ mimemessage message=new mimemessage(session); message.setfrom(new internetaddress("jb51@sohu.com")); message.setrecipient(message.recipienttype.to,new internetaddress("jb51@sina.com")); message.setsubject("图片"); mimebodypart text=new mimebodypart(); text.setcontent("好看吗?<br/><img src='cid:xx.jpg'>","text/html;charset=utf-8"); mimebodypart image=new mimebodypart(); image.setdatahandler(new datahandler(new filedatasource("src//f.jpg"))); image.setcontentid("xx.jpg"); mimemultipart mm=new mimemultipart(); mm.addbodypart(text); mm.addbodypart(image); mm.setsubtype("related"); message.setcontent(mm); message.savechanges(); return message; } }
(3)javamail邮件发送内容、图片和附件
public class sendattchimagemail { public static void main(string[] args) throws exception { //属性文件 properties props=new properties(); //设置邮件的发送主机名、发送协议和是否验证 props.setproperty("mail.host","smtp.sohu.com" ); props.setproperty("mail.transport.protocol", "smtp"); props.setproperty("mail.smtp.auth", "true"); //获取发送接收邮件环境的对象 session session=session.getinstance(props); message message=createmessage(session); //创建发送邮件的对象 transport tsp=session.gettransport(); tsp.connect("jb51", "jb51"); tsp.sendmessage(message, message.getallrecipients()); tsp.close(); } public static message createmessage(session session) throws exception{ mimemessage message=new mimemessage(session); message.setfrom(new internetaddress("jb51@sohu.com")); message.setrecipient(message.recipienttype.to,new internetaddress("jb51@sina.com")); message.setsubject("图片"); mimebodypart text=new mimebodypart(); text.setcontent("好看吗?<br/><img src='cid:xx.jpg'>","text/html;charset=utf-8"); mimebodypart image=new mimebodypart(); image.setdatahandler(new datahandler(new filedatasource("src//f.jpg"))); image.setcontentid("xx.jpg"); mimebodypart attch=new mimebodypart(); datahandler dh=new datahandler(new filedatasource("src//默默无 语.mp3")); attch.setdatahandler(dh); string name=dh.getname(); attch.setfilename(mimeutility.encodetext(name)); mimemultipart mm=new mimemultipart(); mm.addbodypart(text); mm.addbodypart(image); mm.setsubtype("related"); mimebodypart part=new mimebodypart(); part.setcontent(mm); mimemultipart m=new mimemultipart(); m.addbodypart(part); m.addbodypart(attch); m.setsubtype("mixed"); message.setcontent(m); message.savechanges(); return message; } }
注:邮箱地址必须是真实的
希望本文所述对大家的java程序设计有所帮助。
上一篇: 详解java中的6种单例写法及优缺点
下一篇: 值类型和引用类型的区别深入理解