554 SMTP-Synchronisation Fehler mit exim4 und mein code
Habe ich kopfüber in diese lehnen Fehler von exim4:
2010-02-15 01:46:05 SMTP-Protokoll Synchronisation Fehler (Eingang geschickt, ohne zu warten, für den Gruß): abgelehnt-Verbindung von H=ender [192.168.20.49] input="HELO 192.168.20.49\r\n"
Habe ich geändert mein exim4-config nicht durchsetzen sync, etwa so:
smtp_enforce_sync='false'
acl_smtp_connect = nosync nosync:
control = no_enforce_sync
accept
Aber das scheint keine Rolle zu spielen. Was macht weniger Sinn für mich ist, warum ich bin immer die 554 in den ersten Platz. Ich sende eine HELO, ich warte auf eine Antwort, und irgendwie in der Mitte, dass ich zu verwalten, zu generieren "554 Fehler"
Was mache ich falsch im folgenden code das macht dieses scheitern 99% der Zeit (ja, es hat zweimal). Ja, der socket blockiert, ich Hänge in der "recv" - Vorgang für ~5 Sekunden warten für die Ablehnung. Auf die 2 mal, wenn es geklappt hat, verharrt Sie nicht bei allen.
Ich habe versucht, das senden EHLO statt HELO, kein besseres Glück. Ich habe sogar Trauer bekommen Sie eine telnet-Sitzung eine Verbindung herstellen und sagen, HELO. Allerdings kann ich python verwenden smtp (von einer anderen Maschine) zum senden von E-Mails nur in Ordnung, gegen dieses gleichen server!
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';
- Ich schamlos geklaut habe den code von codeproject.com/KB/IP/zsmtp.aspx?msg=1332673#xx1332673xx ich versuche, eine meiner test-Programme, um E-Mail mich, wenn es fertig ist!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihren code warten soll, für eine
220
Zeile vom smtp-server vor dem senden des HELO-Nachricht. Siehe Abschnitt 3.1 RFC 2821. Das ist wahrscheinlich das, was die Python-Bibliothek bietet.Sollte es mehrere freie Bibliotheken zur Verfügung, die Ihnen dabei helfen können, zum Beispiel libsmtp. Betrachten Sie verbringen die Zeit auf das lernen, einen solchen anstelle von Patches Ihre eigene Lösung (es sei denn, Ihr Projekt zu schreiben, Ihre eigene E-mail-Lösung).