我已经从exim4:#/ p>开始了这个拒绝错误
2010-02-15 01:46:05 SMTP协议同步错误(无需等待问候语即发送输入):H = ender拒绝连接[192.168.20.49] input =“HELO 192.168.20.49 \ r \ n”< / p>
我修改了我的exim4配置以强制执行同步,如下所示:
smtp_enforce_sync='false'
acl_smtp_connect = nosync nosync:
control = no_enforce_sync
accept
但这似乎并不重要。对我来说不那么有意义的是为什么我首先得到了554。我发送一个HELO,我等待回复,不知怎的,在那之中,我设法生成“554错误”
我在下面的代码中做错了什么,这使得99%的时间失败(是的,它已经工作了两次)。是的,套接字是阻塞的,我在recv中等待约5秒等待拒绝。在它工作的2次时,它根本没有停顿。
我尝试过发送EHLO而不是HELO,没有更好的运气。我甚至悲痛欲绝地连接一个telnet会话并说HELO。但是,我可以使用python smtp(来自另一台机器)在同一台服务器上发送电子邮件!
hSocket = _connectServerSocket(server, port);
if (hSocket != INVALID_SOCKET) {
BYTE sReceiveBuffer[4096];
int iLength = 0;
int iEnd = 0;
char buf[4096];
strcpy(buf, "HELO ");
strcat(buf, "192.168.20.49");
strcat(buf, "\r\n");
printf("%s", buf);
if (send(hSocket, (LPSTR)buf, strlen(buf), NO_FLAGS) == SOCKET_ERROR) {
printf("Socket send error: %d\r\n", WSAGetLastError());
return (false);
}
iLength = recv(hSocket,
(LPSTR)sReceiveBuffer+iEnd,sizeof(sReceiveBuffer)-iEnd,
NO_FLAGS);
iEnd += iLength;
sReceiveBuffer[iEnd] = '\0';