3

不知道为什么会这样。我搜索过的每一个地方都告诉我我做对了。但是每次我尝试发送邮件时,它都会超时smtpserver.Send(mail)

private void emailReport(string email_address,int begDatabaseCount, int endDatabaseCount)
        {
            SmtpClient smtpserver = new SmtpClient();
            MailMessage mail = new MailMessage();
            smtpserver.EnableSsl = true;
            smtpserver.Port = 465;
            smtpserver.Host = "smtp.gmail.com";           
            smtpserver.Credentials = new NetworkCredential("mtaylor@atr.com", "password");
            smtpserver.UseDefaultCredentials = false;
            mail = new MailMessage();
            mail.From = new System.Net.Mail.MailAddress("mtaylor@atr.com", "ATR Reports");
            mail.To.Add(email_address);
            mail.Subject = "FNAS Report - " + DateTime.Now;
            mail.Body += "<u><b>FNAS Report for " + DateTime.Now + "</u></b>" + "\r\n \r\n";
            mail.Body += "Beginning Database Count - " + begDatabaseCount + "\r\n" + "\r\n";
            mail.Body += "End Database Count - " + endDatabaseCount + "\r\n" + "\r\n";
            mail.Body += "<b>Total Imported Orders = " + (endDatabaseCount - begDatabaseCount) + "<b>" + "\r\n" + "\r\n";
            mail.IsBodyHtml = true;

            smtpserver.Send(mail);
        }

端口 465 = 1 分钟后超时

端口 587 = “SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。”

4

4 回答 4

10

正如@kostyan 所说,正确的端口是 587,但要进行身份验证,您需要允许来自您 gmail 帐户中安全性较低的应用程序的访问。在这里试试

它对我有用,希望它有帮助..

于 2015-01-16T18:34:20.430 回答
5

你确定这个端口吗,在我的代码中我有它作为 587,否则看起来很相似并且它可以工作。

于 2013-11-12T15:23:15.357 回答
4

这个线程帮助了我。我不确定为什么这段代码有效而我的无效。

通过 Gmail 在 .NET 中发送电子邮件

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
           {
               Host = "smtp.gmail.com",
               Port = 587,
               EnableSsl = true,
               DeliveryMethod = SmtpDeliveryMethod.Network,
               UseDefaultCredentials = false,
               Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
           };
using (var message = new MailMessage(fromAddress, toAddress)
                     {
                         Subject = subject,
                         Body = body
                     })
{
    smtp.Send(message);
}
于 2013-11-12T17:54:40.133 回答
1

我发现,当我尝试使用 google smtp 来欺骗发件人地址时(例如,使用 FromAddress 作为我的 gmail 帐户名称以外的名称),我收到了身份验证错误消息或只是超时。

于 2014-10-06T17:02:22.677 回答