电子邮件(e-mail)是internet上使用最广泛的服务之一,传统的email应用模式基于c/s结构,即用户使用客户端的邮件收发工具(如outlook、foxmail等)与提供邮件服务的服务器(如163.net、263.net、371.net)通信,在使用客户端邮件工具之前,用户要进行一些必要的设置,如指定邮件服务器的主机地址和通信端口等,这些工作对刚开始上网的用户会有一定的困难,如果把e-mail和web结合在一起,即通过web编程和适当的系统设置,使用户仅仅以访问web的方式就可以得到和使用完整的邮件服务,这样将极大地方便上网用户,这种系统称为webmail。webmail是目前internet上最受欢迎的服务之一,也是很多网站必备功能之一。另外webmail同样也适用于企业或校园网的应用。
通常在后台服务器的搭建和设置完成后实现webmail系统,而前台的开发工作主要是开发工具与后台数据库和邮件服务器的交互问题。在linux平台上运行的各种服务器软件稳定性和可靠性一直很好,而且选择跨平台的java开发工具使系统更稳定,具有更高的伸缩性。
string username=request.getparameter("login");string password=request.getparameter("password");session session2=session.getinstance(system.getproperties() ,null);store store=session2.getstore("pop3");
try{ store.connect(host,username+"%nyist.net", password);}catch(javax.mail.authenticationfailedexception e){content="用户名与密码不匹配";}
store.connect("nyist.net",-1,request.getparameter("username")+"%nyist.net",request.getparameter("password"));
folder folder = store.getfolder("inbox");folder.open (folder.read_write);message message[]=folder.getmessages();fetchprofile fp=new fetchprofile();fp.add(fetchprofile.item.envelope);fp.add(fetchprofile.item.flags);fp.add("x-mailer");folder.fetch(message,fp);
string contentbody="";object o=message[j].getcontent();
if (message[j].ismimetype("text/plain")) { contentbody=(string)+"</td>"; stringbuffer buf=new stringbuffer(contentbody.length()+6); char ch=' '; for(int p=0;p<contentbody.length();p++)//若遇到换行就转为<br> {ch=contentbody.charat(p); if(ch=='/n')buf.append("<br>"); else buf.append(ch); } contentbody=buf.tostring();}
else if (message[j].ismimetype("text/html")) contentbody=(string)o+"</td>";
string host = "nyist.net";string from = request.getparameter("from");string to = request.getparameter("to");string subject = request.getparameter("subject");string content = request.getparameter("content");properties props = system.getproperties();//设置邮件服务props.put("mail.smtp.host", host);session session2 =session.getinstance(props, null);
mimemessage message =new mimemessage(session2);message.setfrom(new internetaddress(from));message.addrecipient(message.recipienttype.to,new internetaddress(to));message.setsubject(subject);message.setsentdate(new date());// create the message partmimebodypart messagebodypart =new mimebodypart();
messagebodypart.settext(content);multipart multipart = new mimemultipart();multipart.addbodypart(messagebodypart);
for (int i=0;i<mysmartupload.getfiles().getcount();i++){ com.jspsmart.upload.file myfile = mysmartupload.getfiles().getfile(i); if (!myfile.ismissing()) { myfile.saveas("/upload/" + myfile.getfilename()); count ++;}
for(int i=0;request.getparameter("file"+i)!=null;i++){ messagebodypart = new mimebodypart(); file file=new file("/home/mengyu/root/upload/",request.getparameter("file"+i)); datasource source =new filedatasource(file); messagebodypart.setdatahandler(new datahandler(source)); messagebodypart.setfilename(request.getparameter("file"+i)); multipart.addbodypart(messagebodypart);}// put parts in messagemessage.setcontent(multipart);
transport.send(message);
folder folder=store.getfolder("inbox");folder.open(folder.read_write);message message[]=folder.getmessages();string msg[]=request.getparametervalues("msg");for(int i=0,n=msg.length;i<n;i++) message[double.valueof(msg[i]).intvalue()].setflag(flags.flag.deleted,true);folder.close(true);
//添加用户runtime.getruntime().exec("/home/vpopmail/bin/vadduser"+request.getparameter("username")+"@nyist.net "+request.getparameter("passwd"));//删除用户runtime.getruntime().exec("/home/vpopmail/bin/vdeluser"+request.getparameter("username")+"@nyist.net");//修改用户密码runtime.getruntime().exec("/home/vpopmail/bin/vpasswd"+request.getparameter("username")+"@nyist.net "+request.getparameter("passwd"));
新闻热点
疑难解答