谁有基于struts2 可以改pop3的邮件收发的源码啊 OA里需要这么一个东西,我没做过,希望下来参考看看,谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Struts2这种东西只是 Web层的东西吧。和发邮件没有关系。你可以前台用Struts2,后台用 JavaMail,也可以整合Spring Mail。来实现。具体代码也不是三,五行说的清楚。你Google下, 太多这样的例子了,你只要把实现Mail的功能剥离下来,整合到Struts2里面就OK import javax.mail.*;import javax.mail.internet.*;import java.util.*;import java.io.*;/** * <p>Title: 使用JavaMail接收邮件</p> * <p>Description: 实例JavaMail包接收邮件,本实例没有实现接收邮件的附件。</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: POPMail.java</p> * @version 1.0 */public class PopMail{/** *<br>方法说明:主方法,接收用户输入的邮箱服务器、用户名和密码 *<br>输入参数: *<br>返回类型: */ public static void main(String args[]){ try{ String popServer="pop.mail.yahoo.com.cn"; String popUser="xiyushuo"; String popPassword="19820809"; receive(popServer, popUser, popPassword); }catch (Exception ex){ System.out.println("Usage: java com.lotontech.mail.POPMail"+" popServer popUser popPassword"); } System.exit(0); } public static void receive(String popServer, String popUser, String popPassword){ Store store=null; Folder folder=null; try{ //获取默认会话 Properties props = System.getProperties(); Session session = Session.getDefaultInstance(props, null); //使用POP3会话机制,连接服务器 store = session.getStore("pop3"); store.connect(popServer, popUser, popPassword); //获取默认文件夹 folder = store.getDefaultFolder(); if (folder == null) throw new Exception("No default folder"); //如果是收件箱 folder = folder.getFolder("INBOX"); if (folder == null) throw new Exception("No POP3 INBOX"); //使用只读方式打开收件箱 folder.open(Folder.READ_ONLY); //得到文件夹信息,获取邮件列表 Message[] msgs = folder.getMessages(); for (int msgNum = 0; msgNum < msgs.length; msgNum++){ printMessage(msgs[msgNum]); } }catch (Exception ex){ ex.printStackTrace(); } finally{ //释放资源 try{ if (folder!=null) folder.close(false); if (store!=null) store.close(); }catch (Exception ex2) { ex2.printStackTrace(); } } } public static void printMessage(Message message){ try{ //获得发送邮件地址 String from=((InternetAddress)message.getFrom()[0]).getPersonal(); if (from==null) from=((InternetAddress)message.getFrom()[0]).getAddress(); System.out.println("FROM: "+from); //获取主题 String subject=message.getSubject(); System.out.println("SUBJECT: "+subject); //获取信息对象 Part messagePart=message; Object content=messagePart.getContent(); //附件 if (content instanceof Multipart){ messagePart=((Multipart)content).getBodyPart(0); System.out.println("[ Multipart Message ]"); } //获取content类型 String contentType=messagePart.getContentType(); //如果邮件内容是纯文本或者是HTML,那么打印出信息 System.out.println("CONTENT:"+contentType); if (contentType.startsWith("text/plain")|| contentType.startsWith("text/html")){ InputStream is = messagePart.getInputStream(); BufferedReader reader=new BufferedReader(new InputStreamReader(is)); String thisLine=reader.readLine(); while (thisLine!=null){ System.out.println(thisLine); thisLine=reader.readLine(); } } System.out.println("-------------- END ---------------"); }catch (Exception ex){ ex.printStackTrace(); } }}找到一段,请问,这段代码是如何获得附件? 没看懂 Multipart mp = (Multipart)message.getContent(); for (int i=0, n=multipart.getCount(); i<n; i++) { Part part = multipart.getBodyPart(i)); String disposition = part.getDisposition(); if ((disposition != null) && ((disposition.equals(Part.ATTACHMENT) || (disposition.equals(Part.INLINE))) { saveFile(part.getFileName(), part.getInputStream()); } } 从网上找了这么一段代码, 谁知道那个saveFile(part.getFileName(), part.getInputStream()); 方法具体是怎么写的啊? saveFile 方法要自己写- - dom4j api中文版 还要继续么 tomcat启动时报错,java.lang.reflect.InvocationTargetException 用java 如何获取flv文件的高度x宽度,时间!!! JBPM无法解决的问题 james2.3.1邮件服务器配置问题 我的SPRING配置文件应该怎么修改 才能事务回滚....大家帮忙看看 各位兄弟姐妹,小弟想转J2EE,希望能推荐几本好书,谢谢 请问大家所做过的或所知道的数据库中间件一般用什么技术? 支付宝 退款 出错 求大神指导 关于webservice-axis2入门求助 热心的朋友帮我看一下!!
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
/**
* <p>Title: 使用JavaMail接收邮件</p>
* <p>Description: 实例JavaMail包接收邮件,本实例没有实现接收邮件的附件。</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: POPMail.java</p>
* @version 1.0
*/
public class PopMail{
/**
*<br>方法说明:主方法,接收用户输入的邮箱服务器、用户名和密码
*<br>输入参数:
*<br>返回类型:
*/
public static void main(String args[]){
try{
String popServer="pop.mail.yahoo.com.cn";
String popUser="xiyushuo";
String popPassword="19820809";
receive(popServer, popUser, popPassword);
}catch (Exception ex){
System.out.println("Usage: java com.lotontech.mail.POPMail"+" popServer popUser popPassword");
}
System.exit(0);
}
public static void receive(String popServer, String popUser, String popPassword){
Store store=null;
Folder folder=null;
try{
//获取默认会话
Properties props = System.getProperties();
Session session = Session.getDefaultInstance(props, null);
//使用POP3会话机制,连接服务器
store = session.getStore("pop3");
store.connect(popServer, popUser, popPassword);
//获取默认文件夹
folder = store.getDefaultFolder();
if (folder == null) throw new Exception("No default folder");
//如果是收件箱
folder = folder.getFolder("INBOX");
if (folder == null) throw new Exception("No POP3 INBOX");
//使用只读方式打开收件箱
folder.open(Folder.READ_ONLY);
//得到文件夹信息,获取邮件列表
Message[] msgs = folder.getMessages();
for (int msgNum = 0; msgNum < msgs.length; msgNum++){
printMessage(msgs[msgNum]);
}
}catch (Exception ex){
ex.printStackTrace();
}
finally{
//释放资源
try{
if (folder!=null) folder.close(false);
if (store!=null) store.close();
}catch (Exception ex2) {
ex2.printStackTrace();
}
}
}
public static void printMessage(Message message){
try{
//获得发送邮件地址
String from=((InternetAddress)message.getFrom()[0]).getPersonal();
if (from==null) from=((InternetAddress)message.getFrom()[0]).getAddress();
System.out.println("FROM: "+from);
//获取主题
String subject=message.getSubject();
System.out.println("SUBJECT: "+subject);
//获取信息对象
Part messagePart=message;
Object content=messagePart.getContent();
//附件
if (content instanceof Multipart){
messagePart=((Multipart)content).getBodyPart(0);
System.out.println("[ Multipart Message ]");
}
//获取content类型
String contentType=messagePart.getContentType();
//如果邮件内容是纯文本或者是HTML,那么打印出信息
System.out.println("CONTENT:"+contentType);
if (contentType.startsWith("text/plain")||
contentType.startsWith("text/html")){
InputStream is = messagePart.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(is));
String thisLine=reader.readLine();
while (thisLine!=null){
System.out.println(thisLine);
thisLine=reader.readLine();
}
}
System.out.println("-------------- END ---------------");
}catch (Exception ex){
ex.printStackTrace();
}
}}找到一段,请问,这段代码是如何获得附件? 没看懂
for (int i=0, n=multipart.getCount(); i<n; i++) {
Part part = multipart.getBodyPart(i));
String disposition = part.getDisposition();
if ((disposition != null) &&
((disposition.equals(Part.ATTACHMENT) ||
(disposition.equals(Part.INLINE))) {
saveFile(part.getFileName(), part.getInputStream());
}
}
从网上找了这么一段代码, 谁知道那个saveFile(part.getFileName(), part.getInputStream()); 方法具体是怎么写的啊? saveFile 方法要自己写- -