自己试着写了一个检测邮件的程序,但是无法和服务器连接。那位专家帮忙看一下,代码如下

问题描述

程序可以运行但是连不上服务器,编译时不报错#include"StdAfx.h"#include".pop3.h"#include"MAPI.h"#defineCONNECTION_CHECK1#defineUSER_CHECK2#definePASSWORD_CHECK3#defineSTAT_CHECK4POP3::POP3(void):m_nNum(0),m_strErr(_T("")){m_Server.Create();}POP3::~POP3(void){m_Server.Close();}BOOLPOP3::Connect(void){return0;}intPOP3::GetNumofMail(void){returnm_nNum;}BOOLPOP3::Disconnect(void){return0;}BOOLPOP3::Connect(CString&host,CString&user,CString&pwd){charbuf[512];if(!m_Server.Connect(host,110)){m_strErr=_T("不能连接到邮件服务器");returnFALSE;}else{if(CheckResponse(CONNECTION_CHECK)==FALSE)returnFALSE;wsprintf(buf,"USER%srn",(LPCSTR)user);m_Server.Send(buf,(int)strlen(buf));if(CheckResponse(USER_CHECK)==FALSE)returnFALSE;wsprintf(buf,"PASS%srn",(LPCSTR)user);m_Server.Send(buf,(int)strlen(buf));if(CheckResponse(PASSWORD_CHECK)==FALSE)returnFALSE;returnTRUE;}}BOOLPOP3::CheckResponse(intrespType){charbuf[256]="";m_Server.Receive(buf,sizeof(buf));switch(respType){caseCONNECTION_CHECK:if(strnicmp(buf,"-ERR",4)==0){m_strErr=_T("错误的连接!");returnFALSE;}break;caseUSER_CHECK:if(strnicmp(buf,"-ERR",4)==0){m_strErr=_T("错误的用户名!");returnFALSE;}break;casePASSWORD_CHECK:if(strnicmp(buf,"-ERR",4)==0){m_strErr=_T("错误的密码!");returnFALSE;}break;caseSTAT_CHECK:if(strnicmp(buf,"-ERR",4)==0){m_strErr=_T("命令错误!");returnFALSE;}else{BOOLmailNum=TRUE;for(char*p=buf;*p!='';p++){if(*p=='t'||*p==''){if(mailNum==TRUE){m_nNum=atoi(p);mailNum=FALSE;}else{m_nNum=atoi(p);returnTRUE;}}}}break;}return0;}BOOLPOP3::Statistics(void){charbuf[512];wsprintf(buf,"STATrn");m_Server.Send(buf,(int)strlen(buf));if(CheckResponse(STAT_CHECK)==FALSE)returnFALSE;elsereturnTRUE;}CStringPOP3::GetErrMsg(void){returnm_strErr;}这是处理检测程序的类voidCcheckmailDlg::OnTimer(UINTnIDEvent){//TODO:在此添加消息处理程序代码和/或调用默认值POP3popServer;KillTimer(1);if(popServer.Connect(m_Server,m_User,m_Pwd)==FALSE)AfxMessageBox(popServer.GetErrMsg());elseif(popServer.Statistics()==FALSE)AfxMessageBox(popServer.GetErrMsg());else{m_Num=popServer.GetNumofMail();UpdateData(FALSE);SetTimer(1,m_nDuration*1000,NULL);}CDialog::OnTimer(nIDEvent);}这是执行的函数

解决方案

解决方案二:
没人能帮个忙吗-_-!
解决方案三:
你的测试邮件服务器是什么?光看代码能看出来错误么?
解决方案四:
就是测试有没有新邮件,现在端口可以打开了但是不能和服务器建立连接
解决方案五:
连接服务器失败?那你应该用GetLastError看看是什么原因。
解决方案六:
ok
解决方案七:
调试一下哪里错误,GetLastError看看什么错误
解决方案八:
该回复于2008-05-09 11:13:15被版主删除
解决方案九:
支持搂主,收藏

时间: 2024-09-21 03:02:23

自己试着写了一个检测邮件的程序,但是无法和服务器连接。那位专家帮忙看一下,代码如下的相关文章

ssl-python:POPlib模块写一个接受邮件的程序,显示登陆失败,请使用安全连接SSL

问题描述 python:POPlib模块写一个接受邮件的程序,显示登陆失败,请使用安全连接SSL 解决方案 接收方是qq邮箱..... 解决方案二: 在qq邮箱里要配置一下,使用ssl连接

求救大神,我用android studio开发的项目,删除后能恢复找到不、我写了一个多月的程序

问题描述 求救大神,我用android studio开发的项目,删除后能恢复找到不.我写了一个多月的程序 如题,我写了一个多月的程序,今天不小心点右键删除了项目.请问一下大神有办法恢复没?我在百度上到处找也没有相关的解答.谢谢了啊. 解决方案 试试这个 http://www.xiazaiba.com/html/591.html 个人觉得数据恢复中比较好的

java代码-我用java写了一个简易计算器的程序,但是有时候结果不正确

问题描述 我用java写了一个简易计算器的程序,但是有时候结果不正确 就是有时候计算结果后面会显示很多9或者0 ,比如计算8.3-2.1时,请问大神怎么解决啊? 我是菜菜鸟,程序如下: //Calculator.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame { private JPanel p1=new JPanel();

关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序.

问题描述 关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序. 关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序 刚开始是免费试用7天 但是如果你今天安装了 没到7天 你重新卸载了 再次安装 又有七天了 这个问题该怎么解决呢????. 解决方案 在程序运行的时候往文件系统或者注册表中某个角落写一个值.卸载程序不知道,再次安装,运行后你去判断下,发现有了,就不让用. 还有就是在线验证,将用户信息记录在服务器上.可以用手机短信验证. 解决方案二: 这个有一个就是你安装的

c语言-C语言写的一个实时时间小程序,用的多线程屏幕问题

问题描述 C语言写的一个实时时间小程序,用的多线程屏幕问题 这是一个子程序,我想把这个调试好了加到另一个工程里,因为要实时显示时间,所以用到了多线程,现在的问题是子线程执行的时候 光标就移动到这行后面,主线程再打印什么东西的时候,屏幕显示就乱套了,怎么能解决啊,下面是代码片段. void real_time(int X,int Y) //显示时间的函数,用到了光标移动函数,X,Y表示坐标 { HideCursor(10, 0); //隐藏光标函数 hout = GetStdHandle(STD_

javascript-编写的一个HTML和JavaScripte程序,麻烦看下哪里出了错误

问题描述 编写的一个HTML和JavaScripte程序,麻烦看下哪里出了错误 解决方案 onclick="verfy(document.getElementsByName('a')[0].value)" 解决方案二: onclick="verfy(a.value)" 这行代码不对,你的a是前面那个input的name属性所以a.value是找不到对应的值得,你应该id="a" 然后document.getElementById("a&

看到有人问读数字的代码,试着写了一个,比较不优雅

问题描述 /**Tochangethislicenseheader,chooseLicenseHeadersinProjectProperties.*Tochangethistemplatefile,chooseTools|Templates*andopenthetemplateintheeditor.*/packagetest;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Iterator;impor

我正在用C#写一个邮件客户端程序,不知道如何下手,请高手帮忙!!

问题描述 如题,提供源码也可.但要全.邮箱sxliang04@163.com谢谢!! 解决方案 解决方案二:http://www.blogjava.net/blogpig/archive/2006/10/21/76581.html

用C#写的一个简单屏幕保护程序

程序 ScreenSaver.cs using System;using System.Windows.Forms; namespace ScreenSaver{ public class DotNETScreenSaver { [STAThread] static void Main(string[] args) { if (args.Length > 0) { if (args[0].ToLower().Trim().Substring(0,2) == "/c") { Mes