2009-11-21 203 views
0

我想在Visual Studio 2005中构建一个电子邮件应用程序,并且使用.NET的System :: Net :: Mail :: Smtp类来发送电子邮件,但是我无法弄清楚如何验证SMTP服务器(现在我一直在尝试使用smtp.gmail.com)。我怎样才能让SMTP在SMTP验证?

这里是我的代码:

SmtpClient^ client = gcnew SmtpClient("smtp.gmail.com"); 
NetworkCredential^ basicCredential = gcnew NetworkCredential("[email protected]", "password"); 
client->UseDefaultCredentials = false; 
client->Credentials = basicCredential; 

惹恼我是,它不抛出任何SmtpExceptions所以它与服务器的通信好吗事情,它只是不进行身份验证。 我也试过设置:

client->EnableSsl = true; 

但这也行不通。

关于如何使这项工作的任何想法?

编辑:我已经删除了我对这个问题的答案,因为它是错误的。关闭防火墙后什么都不做,看起来这个代码可以工作。有谁知道Gmail是否具有某种垃圾邮件功能,可以转储没有合法标题/正文的内容?或者这个代码为什么会在十次尝试中有效?

第二个编辑:这是我的MAILMESSAGE是什么样子:

MailAddress^ from = gcnew MailAddress(fromAddr, fromName, System::Text::Encoding::UTF8); 
MailAddress^ to = gcnew MailAddress((String^) toAddr[0]); 
MailMessage^ message = gcnew MailMessage(from, to); 
MailAddress^ cc = gcnew MailAddress(ccAddr); 
message->CC->Add(cc); 
MailAddress^ bcc = gcnew MailAddress(bccAddr); 
message->Bcc->Add(bcc); 
message->Body = body; 
message->BodyEncoding = System::Text::Encoding::UTF8; 
message->Subject = sub; 
message->SubjectEncoding = System::Text::Encoding::UTF8; 
message->Attachments->Add(attachment); 

这似乎更加一致,现在的工作,但我还没有在我的代码改变任何东西。它一定有什么做的实际的SMTP服务器?

+0

你的MailMessage是什么样的? – Nate 2009-11-22 01:48:36

+0

为什么选择C++/CLI而不是C#?微软现在主要在“Interop场景”中定位C++/CLI。 – 2009-11-22 04:18:04

+0

这是一个学校项目,我们必须使用C++,不能使用C#... – hora 2009-11-22 05:40:39

回答

2

当您尝试启用ssl时,您是否也将端口更改为587,即GMail SSL SMTP端口?

+0

是的,我已经尝试过,没有运气以及。 – hora 2009-11-22 00:07:45

+0

也许你应该包含更长的代码示例? – Jherico 2009-11-22 02:48:07