【问题标题】:How can I make SMTP authenticated in .NET?如何使 SMTP 在 .NET 中进行身份验证?
【发布时间】:2010-12-19 03:08:02
【问题描述】:

我正在尝试在 Visual Studio 2005 中构建一个电子邮件应用程序,我正在使用 .NET 的 System::Net::Mail::Smtp 类发送电子邮件,但我不知道如何验证 @987654321 @ 使用服务器(现在我最常尝试使用 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 服务器有关?

【问题讨论】:

  • 您的 MailMessage 是什么样的?
  • 是学校项目,要使用C++,不能使用C#...

标签: .net c++ smtp smtp-auth


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-09-22
    • 2021-12-31
    • 2013-04-29
    • 2011-10-09
    • 1970-01-01
    • 2013-02-25
    • 2010-10-27
    • 2015-04-29
    • 2012-12-23
    相关资源
    最近更新 更多