CF.NET SMTP - отправлять электронную почту с помощью Gmail - PullRequest
4 голосов
/ 14 июля 2010

Я пытаюсь отправить электронное письмо из своего приложения. Я могу отправить электронное письмо по адресу smtp.mail.yahoo.com, однако, когда я пытаюсь отправить электронное письмо с помощью gmail (smtp.gmail.com), это не удается.

Я использую SocketPro.

Я пытаюсь использовать также openSSL, но я не знаю, как его использовать!

У кого-нибудь есть пример кода, который вы можете предоставить мне для отправки электронной почты из Gmail?

У меня есть следующее:

USocketClass m_ClientSocket;
m_ClientSocket.Send(Encoding.UTF8.GetBytes("EHLO smtp.gmail.com \r\n")); 
m_ClientSocket.Send(Encoding.UTF8.GetBytes("AUTH LOGIN"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("\r\n"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes(EncodeTo64(myUser)));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("\r\n"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes(EncodeTo64(myPass))); 
m_ClientSocket.Send(Encoding.UTF8.GetBytes("\r\n"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("MAIL FROM: <aaa@gmail.com>"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("\r\n"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("RCPT TO: <bbbbb@gmail.com>"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("\r\n")); 
m_ClientSocket.Send(Encoding.UTF8.GetBytes("DATA"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("\r\n"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("From: <aaa@gmail.com>"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("To: <bbbbb@gmail.com>"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("Subject: Test subject"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("My body test"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("."));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("\r\n"));
m_ClientSocket.Send(Encoding.UTF8.GetBytes("QUIT"));

Вы можете мне помочь?

Спасибо.

Andrew

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Почему бы не использовать .Net Smtp клиент? (В пространстве имен System.Net.Mail)

        SmtpClient client = new SmtpClient();
        client.Credentials = new System.Net.NetworkCredential("username", "password");
        client.Host = "some.smtpserver.com";
        client.Send(from, to, subject, body);
1 голос
/ 17 февраля 2011

Не знаю, помогает ли это, но SMTP-серверы GMail требуют использования SSL на порту 465.

Источник: http://mail.google.com/support/bin/answer.py?answer=76147

...