CF.NET SMTP - 使用Gmail发送电子邮件

时间:2010-07-14 15:25:21

标签: c# windows-mobile smtp gmail openssl

我正在尝试从我的应用程序发送电子邮件。 我可以通过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"));
你可以帮帮我吗?

感谢。

安德鲁

2 个答案:

答案 0 :(得分:1)

我不知道这是否有帮助,但GMail SMTP服务器要求您在端口465上使用SSL。

来源: http://mail.google.com/support/bin/answer.py?answer=76147

答案 1 :(得分:1)

为什么不使用.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);