ソケットから情報を完璧に送受信する以下のような関数があるとしましょう..
結果は次のとおりです。
Connected to: 65.55.96.11 Port: 25
220 BLU0-SMTP374.blu0.hotmail.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Mon, 31 Dec 2012 19:52:22 -0800
250 BLU0-SMTP374.blu0.hotmail.com Hello [50.100.44.155]
220 2.0.0 SMTP server ready
Exception: Socket Error 10054: Connection reset by peer
例外が発生するのはなぜですか? 「DATA」文字列を送信すると、例外がスローされます。
ログイン方法を教えてください。オンラインでどこにいてもわからないようです。私はそれを検索し、AUTHコマンドしか表示しませんが、使用法や例はまったくありません。
コードは以下のとおりです。
void SendEmail(std::string Username, std::string Password, std::string IP, std::string Port)
{
Socket = CreateSocket;
ConnectSocket(Socket, IP, Port);
SetTimeout(Socket, 10000);
SocketInfo(Socket, IP, Port);
writeln("Connected to: " + IP + " Port: " + Port);
writeln(RecvSocket(Socket));
SendSocketEx(Socket, "HELO"); //SendSocketEx automatically adds \r\n to the end of a line..
writeln(RecvSocket(Socket));
SendSocketEx(Socket, "STARTTLS");
writeln(RecvSocket(Socket));
SendSocketEx(Socket, "MAIL FROM: mehwtfbleh@hotmail.com");
writeln(RecvSocket(Socket));
SendSocketEx(Socket, "VRFY mehwtfbleh@hotmail.com");
writeln(RecvSocket(Socket));
SendSocketEx(Socket, "RCPT TO: mehwtfbleh@hotmail.com");
writeln(RecvSocket(Socket));
SendSocketEx(Socket, "DATA");
writeln(RecvSocket(Socket));
SendSocketEx(Socket, "This Is The Body..");
writeln(RecvSocket(Socket));
SendSocketEx(Socket, "QUIT");
writeln(RecvSocket(Socket));
CloseSocket(Socket);
FreeSocket(Socket);
}
int main()
{
SendEmail("", "", "smtp.live.com", "25", "localhost");
}