欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于JavaMail API收发邮件的方法

程序员文章站 2024-03-04 23:24:42
本文实例讲述了基于javamail api收发邮件的方法。分享给大家供大家参考。具体如下: 1.javamail api按其功能划分通常可分为如下三大类 (1)创建和解...

本文实例讲述了基于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程序设计有所帮助。