首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

JavaMail接收邮件的有关问题?——请高手指教解决

2011-12-06 
JavaMail接收邮件的问题?——请高手指教解决/***module:UEMailServerManagementAction*description:action*/

JavaMail接收邮件的问题?——请高手指教解决
/**
 *module:UEMailServerManagementAction
 *description:action
 */
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package org.luonix.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.luonix.struts.form.UEMailServerManagementForm;

/** 
 * MyEclipse Struts
 * Creation date: 09-27-2007
 * 
 * XDoclet definition:
 * @struts.action path="/uEMailServerManagement" name="uEMailServerManagementForm" input="/form/uEMailServerManagement.jsp" scope="request" validate="true"
 * @struts.action-forward name="errors" path="/errors.jsp" redirect="true"
 */

//public ActionForward executeLogin(ActionMapping mapping, ActionForm form,
//HttpServletRequest request, HttpServletResponse response)用于登录邮件服务器,并接收//电子邮件
public class UEMailServerManagementAction 
extends org.apache.struts.actions.DispatchAction {
/*
* Generated Methods
*/

/** 
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward executeConnect(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UEMailServerManagementForm uEMailServerManagementForm = (UEMailServerManagementForm) form;// TODO Auto-generated method stub

return null;
}
public ActionForward executeLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
UEMailServerManagementForm uEMailServerManagementForm = (UEMailServerManagementForm) form;// TODO Auto-generated method stub
String host = "127.0.0.1";
//org.apache.struts.action.ActionForward forward = new 
//org.apache.struts.action.ActionForward();
//forward.setPath("/secondAction?method=mymethod");
String luonixid = uEMailServerManagementForm.getLuonixid();
String password = uEMailServerManagementForm.getPassword();
String protocol = "pop3";
java.util.Properties properties = java.lang.System.getProperties();
try{
javax.mail.Session session = 
javax.mail.Session.getInstance(properties, null);
session.setDebug(true);
javax.mail.Store store = null;
store = session.getStore(protocol);
store.connect(host, luonixid, password);
//store.close();
////
javax.mail.Folder 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"); 
////
//javax.mail.Folder folder = store.getFolder("INBOX");
System.out.println("邮箱打开了吗 " + folder.isOpen());
if(!folder.isOpen())
folder.open(javax.mail.Folder.READ_ONLY);
System.out.println("邮箱打开了吗 " + folder.isOpen());
//folder.notifyAll();
//folder.open(javax.mail.Folder.READ_ONLY);
System.out.println("folder.getMessageCount:" + 
folder.getMessageCount());
javax.mail.Message message[] = folder.getMessages();
int size = message.length;
if(size == 0){
System.out.println("你的收件夹里没有邮件");
javax.servlet.RequestDispatcher rd = 
request.getRequestDispatcher("errors.jsp");


rd.forward(request, response);
}else{
System.out.println("你的收件夹里有" + size + "封邮件");
//mapping.findForward("mail");
//javax.mail.internet.MimeMessage mm = 
//(javax.mail.internet.MimeMessage)message[0];
//System.out.println(mm.getSubject());
org.apache.struts.action.ActionForward forward = new  
org.apache.struts.action.ActionForward();
forward.setPath("/mail.jsp");
return forward;
}

}catch(javax.mail.MessagingException me){

}catch(javax.servlet.ServletException se){

}catch(java.io.IOException ioe){

}
return null;
}
public ActionForward executeDisconnect(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UEMailServerManagementForm uEMailServerManagementForm = (UEMailServerManagementForm) form;// TODO Auto-generated method stub
return null;
}
}
//public ActionForward executeLogin(ActionMapping mapping, ActionForm form,
//HttpServletRequest request, HttpServletResponse response)用于登录邮件服务器,并接收//电子邮件

运行结果:
DEBUG: setDebug: JavaMail version 1.3.1
DEBUG: getProvider() returning javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]
DEBUG POP3: connecting to host "127.0.0.1", port 110
S: +OK ArGoSoft Mail Server, Version 1.4 (1.4.0.3)
C: USER daidai
S: +OK Password required for daidai
C: PASS jxcoco1128
S: +OK Mailbox locked and ready
邮箱打开了吗 false
C: STAT
S: +OK 0 0
邮箱打开了吗 true
folder.getMessageCount:0
你的收件夹里没有邮件
C: QUIT


问题:我收件夹中明明有邮件,可就是取不出邮件来。读取的邮件数目为0,我想是POP3的问题,可怎么解决?高手指教解决。

[解决办法]
顶!
刚好我也在做这个,不过我还没到你这步,帮不了你。
我现在卡在使用imap协议连不上imap.163.com的服务器,
不知道是不是163.com不支持imap,想想也不大可能,晕。。。

热点排行