用DELPHI的Indy组件开发的发送邮件功能程序存在的问题,谁能解? ( 积分: 50 )

  • 主题发起人 主题发起人 danng
  • 开始时间 开始时间
D

danng

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi7的Indy组件开发了一个发送邮件功能的程序,在Win2000下可以正常发送邮件,但在WinXP下却发送不出去,不知哪位大哥以前遇到过这个问题没有。
 
我用delphi7的Indy组件开发了一个发送邮件功能的程序,在Win2000下可以正常发送邮件,但在WinXP下却发送不出去,不知哪位大哥以前遇到过这个问题没有。
 
就没有谁碰到过这种问题吗?是不是在XP中需要其它的文件支持才行呢?期待网络高手解答
 
通常可能是字符集的问题,发不出去也可以调试一下,看看网络报文是什么.是不是有区别,还有可能就是端口问题,下面是常见的网络错误列表,应该对你有帮助

常数 值 描述
sckOutOfMemory 7 内存不足
sckInvalidPropertyValue 380 属性值无效。
sckGetNotSupported 394 属性不可读。
sckSetNotSupported 383 属性是只读的。
sckBadState 40006 所请求的事务或请求本身的错误协议或者错误连接状态。
sckInvalidArg 40014 传递给函数的参数格式不确定,或者不在指定范围内。
sckSuccess 40017 成功。
sckUnsupported 40018 不受支持的变量类型。
sckInvalidOp 40020 在当前状态下的无效操作
sckOutOfRange 40021 参数越界。
sckWrongProtocol 40026 所请求的事务或请求本身的错误协议
sckOpCanceled 1004 取消操作。
sckInvalidArgument 10014 所请求的地址是广播地址,但未设置标记。
sckWouldBlock 10035 套接字不成块,而指定操作将使之成块。
sckInProgress 10036 制造块的 Winsock 操作在进行之中。
sckAlreadyComplete 10037 完成操作。未进行制造块的操作。
sckNotSocket 10038 描述符不是套接字。
sckMsgTooBig 10040 数据报太大,不适于缓冲区的要求,因而被截断。
sckPortNotSupported 10043 不支持指定的端口。
sckAddressInUse 10048 地址在使用中。
sckAddressNotAvailable 10049 来自本地机器的不可用地址。
sckNetworkSubsystemFailed 10050 网络子系统失败。
sckNetworkUnreachable 10051 此时不能从主机到达网络。
sckNetReset 10052 在设置 SO_KEEPALIVE 时连接超时。
sckConnectAborted 11053 由于超时或者其它失败而中止连接。
sckConnectionReset 10054 通过远端重新设置连接。
sckNoBufferSpace 10055 没有可用的缓冲空间。
sckAlreadyConnected 10056 已连接套接字。
sckNotConnected 10057 未连接套接字。
sckSocketShutdown 10058 已关闭套接字。
sckTimedout 10060 已关闭套接字。
sckConnectionRefused 10061 强行拒绝连接。
sckNotInitialized 10093 应首先调用 WinsockInit。
sckHostNotFound 11001 授权应答:未找到主机。
sckHostNotFoundTryAgain 11002 非授权应答:未找到主机。
sckNonRecoverableError 11003 不可恢复的错误。
sckNoData 11004 无效名,对所请求的类型无数据记录。
------------------------------
看到好久每人回答,帮你顶一下,下面的就看你自己了,关键是看网络的报文有没有区别,另外,可以错误信息贴上来,大家帮你分析,懒得动手了,楼主好运吧[:D]
 
谢谢您的支持,可我感觉很奇怪,有一台XP系统能正常发邮件,其它的都是连接服务器出错。后来我在一台出错的XP系统中调试发邮件。出错提示是:
Project Alarm.exe raised exception class EIdSocketError with message 'Socket Error #10053 Software caused connection abort.'. Process stopped. Use Step or Run to continue.
不知XP系统哪个地方能够阻止连接服务器。
 
找了很久,终于自己找到答案了。
chenybin,谢谢你的支持,分全给你了。
 
产生原因:
我们的WinXP都装有Mcafee Virusscan杀毒软件,而Mcafee Virusscan却有一项防止蠕虫群发邮件的功能,它会封住端口25的。
具体解决方案:
打开Mcafee Virusscan的Access Protection Properties页,
去掉Rule下的Prevent mass mailing worms from sending mail的勾选框即可。
如果其它杀毒软件也有阻塞Port 25的话,做相应处理即可。
 
后退
顶部