Ping funktioniert nicht. Telnet ist keine Option, senden Sie auch eine Mail. Vorzugsweise eine Funktion aus einer Bibliothek, die Wahr oder Falsch zurückgibt.Überprüfen des Status des Mail-Servers (SSL, SMTP-Port 465) in C++
Danke.
Ping funktioniert nicht. Telnet ist keine Option, senden Sie auch eine Mail. Vorzugsweise eine Funktion aus einer Bibliothek, die Wahr oder Falsch zurückgibt.Überprüfen des Status des Mail-Servers (SSL, SMTP-Port 465) in C++
Danke.
Wenn Sie mit "open" arbeiten, können Sie einfach eine Verbindung zum Port herstellen und sehen, ob der Socket erfolgreich geöffnet wird.
Wenn Sie meinen, dass es gültiges SMTP über SSL akzeptiert, dann benötigen Sie eine Bibliothek, die eine Verbindung herstellt und einen trivialen SMTP-Befehl wie HELO oder etwas ausgibt.
Chilkat hat Bibliothekscode und Beispiele dafür.
Beispielcode für win32 verbinden:
#include <winsock2.h>
#include <ws2tcpip.h>
#include <wspiapi.h>
void tryconnect(const char * host, const char * port)
{
SOCKET Socket = INVALID_SOCKET;
struct addrinfo *resAddrInfo = NULL;
struct addrinfo *ptr = NULL;
struct addrinfo hints;
int result = 0;
printf("Connecting to %s:%s\n", host, port);
ZeroMemory(&hints, sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
result = getaddrinfo(host, port, &hints, &resAddrInfo);
if (result != 0)
{
printError("getaddrinfo failed");
return;
}
ptr = resAddrInfo;
Socket = WSASocket(ptr->ai_family, ptr->ai_socktype, ptr->ai_protocol, NULL, 0, WSA_FLAG_OVERLAPPED);
if (Socket == INVALID_SOCKET)
{
printError("Error Creating Socket");
freeaddrinfo(resAddrInfo);
return;
}
result = WSAConnect(Socket, ptr->ai_addr, (int)ptr->ai_addrlen, NULL, NULL, NULL, NULL);
if (result != 0)
{
printError("Error Connecting");
closesocket(Socket);
freeaddrinfo(resAddrInfo);
return;
}
freeaddrinfo(resAddrInfo);
printf("Success!\n\n");
}
nur eine SSL-Verbindung zum SMTP-Server machen und versucht, eine Zeile aus dem Stream zu lesen. Der Server sollte eine Grußnachricht senden, sobald Sie eine Verbindung wie "220 smtp.domain.com"
keine SSL-Verbindung zu verbinden über Vergessen Sie, wenn Sie dies tun .. :) –
Figured, dass eine gegeben wurde, aber aktualisiert meine Antwort für Klarheit. – Gerald
herstellen Wenn ein Versuch, eine Verbindung mit dem Server durch Ping alles, was ich bekomme, ist ein Timeout, aber der Server funktioniert. –
Danke, aber Chilkat ist 20 Megabyte-Bibliothek, ein bisschen Overkill :) –
Wenn Sie nur versuchen, Ping zu replizieren, dann öffnen Sie einen Socket für diesen Port und sehen, ob es verbindet. –