ASP.NET无法通过Gmail SMTP发送电子邮件,但Outlook 2007成功

ASP.NET无法通过Gmail SMTP发送电子邮件,但Outlook 2007成功,asp.net,outlook,smtp,gmail,Asp.net,Outlook,Smtp,Gmail,大家好 几周前,我的ASP.NET网站停止发送用户评论,我通过Gmail SMTP服务器(SMTP.Gmail.com)将这些评论通过电子邮件发送到我的电子邮件帐户。我在我的开发机器上打开了该项目,几分钟后它再次无法发送电子邮件,并显示以下异常消息: 发送邮件失败 无法从传输连接读取数据:网络io连接已关闭 我正在使用Gmail的SMTP端口465,MailClient.EnableSSL=True。 奇怪的是,我的OfficeOutlook2007使用的是相同的设置,使用相同的Gmail帐户发

大家好 几周前,我的ASP.NET网站停止发送用户评论,我通过Gmail SMTP服务器(SMTP.Gmail.com)将这些评论通过电子邮件发送到我的电子邮件帐户。我在我的开发机器上打开了该项目,几分钟后它再次无法发送电子邮件,并显示以下异常消息:

发送邮件失败

无法从传输连接读取数据:网络io连接已关闭

我正在使用Gmail的SMTP端口465,MailClient.EnableSSL=True。 奇怪的是,我的OfficeOutlook2007使用的是相同的设置,使用相同的Gmail帐户发送邮件时没有任何问题


有什么想法吗?

这段代码适合我。注意,端口号与您正在尝试的465不同。我几乎可以肯定,我也尝试了465第一没有运气

var msg = new MailMessage(new MailAddress(recipient, "SCS Web Site"), new MailAddress(toAddress))
                {
                    Body = BuildMailBody(),
                    Subject = "SCS Web Site Message"
                };
var smtp = new SmtpClient
                {
                    Host = "smtp.gmail.com",
                    Port = 587,
                    EnableSsl = true,
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(myGmailUser, myGmailPassword)
                };
smtp.Send(msg);

这个代码对我有用。注意,端口号与您正在尝试的465不同。我几乎可以肯定,我也尝试了465第一没有运气

var msg = new MailMessage(new MailAddress(recipient, "SCS Web Site"), new MailAddress(toAddress))
                {
                    Body = BuildMailBody(),
                    Subject = "SCS Web Site Message"
                };
var smtp = new SmtpClient
                {
                    Host = "smtp.gmail.com",
                    Port = 587,
                    EnableSsl = true,
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(myGmailUser, myGmailPassword)
                };
smtp.Send(msg);

你不会碰巧在这里有一个防火墙禁止出站连接,比如说,专门允许outlook穿透

您不会碰巧有防火墙禁止出站连接,比如说,专门允许outlook穿透

我发现formmail通过gmail(在Windows服务器上)时的一个奇怪之处是端口号是问题所在。我的代码与您的代码类似,但只有当我将端口更改为25而不是587或465时,它才起作用。这可能就是您在这里所需要的。

我发现formmail通过gmail(在Windows服务器上)时有一个奇怪之处,就是端口号是问题所在。我的代码与您的代码类似,但只有当我将端口更改为25而不是587或465时,它才起作用。这可能就是您在这里需要的。

谢谢您的回复,但这些设置不起作用。使用端口#587,我收到消息“发送邮件失败,无法连接到远程服务器”。即使您的端口工作正常,这也不能解释为什么我的Office Outlook可以使用465发送邮件。这快把我逼疯了!谢谢你的回复,但是那些设置不起作用。使用端口#587,我收到消息“发送邮件失败,无法连接到远程服务器”。即使您的端口工作正常,这也不能解释为什么我的Office Outlook可以使用465发送邮件。这快把我逼疯了!当我们的主服务器无法发送邮件时(2周前),我意识到了这个问题。然后我在我的开发机器上测试了代码,同样的事情发生了。两台机器都没有人碰;所以我认为这与防火墙无关。当我们的主服务器无法发送邮件时(2周前),我意识到了这个问题。然后我在我的开发机器上测试了代码,同样的事情发生了。两台机器都没有人碰;所以我不认为它与防火墙有任何关系。澄清一下,它是在您的生产环境中工作的。但现在在prod或本地都不起作用了吗?它在任何地方都能正常工作。2周前,我们意识到该网站存在问题;当我们检查时,我们意识到它不再工作,无论是在生产服务器上还是在本地。然后我用我的OfficeOutlook2007查看我的本地连接或gmail是否出现问题,它发送邮件很好(使用我们在网站中使用的相同邮件帐户)。为了澄清,它在您的生产环境中工作。但现在在prod或本地都不起作用了吗?它在任何地方都能正常工作。2周前,我们意识到该网站存在问题;当我们检查时,我们意识到它不再工作,无论是在生产服务器上还是在本地。然后我用我的OfficeOutlook2007查看我的本地连接是否有问题,或者gmail是否出现问题,它发送邮件的效果很好(使用我们在网站上使用的相同邮件帐户)。