-1

我正在尝试在 Visual Studio 2005 中构建电子邮件应用程序,并且正在使用 .NET 的 System::Net::Mail::Smtp 类发送电子邮件,但我不知道如何使用服务器验证SMTP(现在我一直在尝试使用 smtp.gmail.com 最多)。

这是我的代码:

SmtpClient^ client = gcnew SmtpClient("smtp.gmail.com");
NetworkCredential^ basicCredential = gcnew NetworkCredential("username@gmail.com", "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 服务器有关?

4

1 回答 1

2

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

于 2009-11-21T23:56:04.980 回答