public bool SendRaw(string sFrom, string sTo, string text)
{
if (!m_oSocket.Connect(_port))
return false;
// Receive welcome message.
string sData = m_oSocket.Receive();
m_oSocket.Send("HELO 127.0.0.1\r\n");
sData = m_oSocket.Receive();
// User
m_oSocket.Send("MAIL FROM:<" + sFrom + ">\r\n");
sData = m_oSocket.Receive();
m_oSocket.Send("RCPT TO:<" + sTo + ">\r\n");
sData = m_oSocket.Receive();
if (sData.StartsWith("2") == false)
return false;
// Send the message.
m_oSocket.Send("DATA\r\n");
sData = m_oSocket.Receive();
m_oSocket.Send(text);
m_oSocket.Send("\r\n");
m_oSocket.Send(".\r\n");
// Wait for OK.
sData = m_oSocket.Receive();
bool success = sData.Substring(0, 3) == "250";
if (!success)
return false;
// Quit again
m_oSocket.Send("QUIT\r\n");
sData = m_oSocket.Receive();
m_oSocket.Disconnect();
return success;
}