Ping无效。 Telnet不是一个选项,也发送邮件。优选地,来自库的函数返回true或false。
感谢。
答案 0 :(得分:1)
如果通过工作意味着打开,您只需连接到端口并查看套接字是否成功打开。
如果您的意思是它接受有效的SMTP over SSL,那么您需要一个连接并发布一个简单的SMTP命令(如HELO等)的库。
Chilkat包含库代码和示例。
win32的连接代码示例:
#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");
}
答案 1 :(得分:1)
只需与SMTP服务器建立SSL连接,然后尝试从流中读取一行。一旦建立连接,例如“220 smtp.domain.com”
,服务器就应该发送问候消息