smtp&pop3认证邮件发送接收
smtp演示http://www.faqs.org/rfcs/rfc821.htmlWSADATA wsa;WSAStartup(MAKEWORD(2,2), &wsa);SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);if (sock == INVALID_SOCKET){return -1;}
·
smtp演示
http://www.faqs.org/rfcs/rfc821.html
WSADATA wsa;
WSAStartup(MAKEWORD(2,2), &wsa);
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == INVALID_SOCKET)
{
return -1;
}
struct sockaddr_in addr;
addr.sin_addr.s_addr = inet_addr(server);
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)))
{
closesocket(sock);
return -2;
}
// ehlo
char szBuf [SIZE_4K] = {0};
std::string request = "EHLO ";
request += server;
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
// auth login
request = "AUTH LOGIN";
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
// =------
request = user;
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
recv(sock, szBuf, SIZE_4K, 0);
request = pass;
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
// mail from
request = "MAIL FROM ";
request += mailfrom;
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
// rcpt to
request = "RCPT TO ";
request += rcptto;
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
// data
request = "DATA";
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
// =-----------
request = "From:";
request += mailfrom;
request += HTTP_CRLF;
request += "To:";
request += rcptto;
request += HTTP_CRLF;
request += "Subject:";
request += subject;
request += HTTP_CRLF;
request += "Cc:";
request += cc;
request += HTTP_CRLF;
request += HTTP_CRLF;
request += body;
request += HTTP_CRLF;
request += ".";
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
// noop
request = "NOOP";
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
// quit
request = "QUIT";
request += HTTP_CRLF;
send(sock, request.c_str(), request.length(), 0);
memset(szBuf, 0, SIZE_4K);
recv(sock, szBuf, SIZE_4K, 0);
closesocket(sock);
pop3演示
http://www.rfc-editor.org/rfc/rfc1939.txt

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)