服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

利用javamail api编写邮件发关程序


  随着互联网的发展和计算机应用的普及,电子邮件越来越成为一种重要的通信方式。目前,有多种开发工具可以编制邮件发送程序,其中以利用javamail api编程最为简单。本文通过一个完整的例子介绍如何通过javamail api编制邮件发送程序。
没有装载javamail api的读者,可以到www.javasoft.com站点下载javamail api 1.2或javamail api 1.3, 并按照readme.txt设置好classpath。例子代码如下:
import java.util.* ;
import java.io.* ;
import javax.mail.* ;
import javax.mail.internet.* ;
import javax.activation.* ;
public class jsendmail {
//定义收件人、发送人、主题等
string to=“”,from=“”,host=“”,filename=“”,messagetext=“”,subject=“”;
boolean debug=false;
//保存发送的文件名
vector vfile = new vector(10,10);
//保存发送的正文
vector vmsg = new vector(10,10);
public jsendmail() {}
public jsendmail(string to,string from,string smtpserver,string subject)  
{
//初始化收件人、发送人、主题
this.to=to;
this.from=from;
this.host=smtpserver;
this.subject=subject;
}
//收集附加文件
public void attachfile(string fname)  
{  
vfile.addelement(fname);
}
//收集邮件正文
public void setmessage(string msg)  
{  
vmsg.addelement(msg);  
}
//设置调试标志
public void setdebug(boolean debug)  
{  
this.debug=debug;
}
//邮件发送函数
public boolean startsend()
{
properties props = system.getproperties();
props.put(“mail.smtp.host”, host);  
session session=session.getdefaultinstance
(props, null);
session.setdebug(debug);
try {
//创建一个消息,并初始化该消息的各项元素
mimemessage msg = new mimemessage(session);
msg.setfrom(new internetaddress(from));
internetaddress[] address={new internet??
address(to)};
msg.setrecipients(message.recipienttype.to,address);
msg.setsubject(subject);
//把message part加入新创建的multipart
multipart mp = new mimemultipart();
// 邮件内容的第一部分
enumeration emsg=vmsg.elements();
while(emsg.hasmoreelements())
{
messagetext=emsg.nextelement().tostring();
mimebodypart mbp1=new mimebodypart();
mbp1.settext(messagetext);
mp.addbodypart(mbp1);
}
vmsg.removeallelements();
// 邮件内容的第二部分
enumeration efile=vfile.elements();
while(efile.hasmoreelements())
{  
mimebodypart mbp2=new mimebodypart();  
filename=efile .nextelement().tostring();
filedatasource fds=new filedatasource(filename);
mbp2.setdatahandler(new datahandler(fds));
mbp2.setfilename(fds.getname());
mp.addbodypart(mbp2);
}
vfile.removeallelements();
// 把multipart加入邮件
msg.setcontent(mp);
// 设置邮件头的发送日期  
msg.setsentdate(new date());  
// 发送邮件  
transport.send(msg);  
} catch (messagingexception mex) {
mex.printstacktrace();
exception ex = null;
if ((ex=mex.getnextexception())!=null)  
{
ex.printstacktrace();
}
return false;
}
return true;
}//end public void startsend()
public static void main(string[] args)  
{
jsendmail sendmail=new jsendmail(“dzx@mail.zj.hn.cn”,“chinazjj@21cn.com”,“smtp.21cn.com”,“test javamail api”);
sendmail.attachfile(“jsendmail.java");
sendmail.attachfile(“jsendmail.class");
sendmail.setmessage(“send a file");
sendmail.setmessage(“send a javafile");
sendmail.startsend();
}
}

扫描关注微信公众号