C#发送邮件错误: System.net.mail.smtpException;服务器提交了协议冲突 服务器响应为: .

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#发送邮件错误: System.net.mail.smtpException;服务器提交了协议冲突 服务器响应为: .相关的知识,希望对你有一定的参考价值。

服务器响应为:
在System.net.mail.sendMailAsyncResult.End(IAsyncResult result)
在System.net.mail.smtpTransport.EndSendMail(IAsyncResult result)
在System.net.mail.SmtpClient.SendMailCallback(IAsyncResult result)
谢谢!

try

client.Send(message);

catch (SmtpException e)

Console.WriteLine("Error: 0", e.StatusCode);

finally

data.Dispose();

检查一下e.StatusCode是否是GeneralFailure
如果是可能是 你自己发送的邮件账号 有问题。比如账号不存。。。
参考技术A 请问你这问题解决了吗?

使用 Gmail SMTP 和 System.Net.Mail 发送电子邮件 [重复]

【中文标题】使用 Gmail SMTP 和 System.Net.Mail 发送电子邮件 [重复]【英文标题】:Sending e-mail with Gmail SMTP and System.Net.Mail [duplicate] 【发布时间】:2011-08-01 03:46:29 【问题描述】:

可能重复:Sending email in .NET through Gmail

我尝试使用 Gmail SMTP 和 System.Net.Mail 发送电子邮件,如下所示:

        Dim objSMTPClient As New System.Net.Mail.SmtpClient("smtp.gmail.com", 465) 'also tried 587
        objSMTPClient.EnableSsl = True
        objSMTPClient.UseDefaultCredentials = False
        objSMTPClient.Credentials = New System.Net.NetworkCredential("email@domain.com", "password")
        objSMTPClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
        objSMTPClient.Send(objMailMessage)

但是,当我尝试使用端口 465 时,我得到一个异常“操作已超时”。 当我尝试使用端口 587 时,出现异常“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。了解更多信息”

知道为什么吗?

提前致谢。

更新:问题似乎在今晚解决了。我不知道发生了什么变化。也许是谷歌方面的东西。无论如何,代码都在工作;我很想知道出了什么问题,所以我可以确保它不会再次发生,也可以帮助社区,但我不能让它进入非工作状态,所以我可以尝试并测试它。

ALSO:我不同意版主将我的问题标记为与另一个线程重复的问题——该线程只是一般性地询问如何通过 Gmail 发送邮件。我阅读了那个帖子,并且按照它说的去做,但它对我不起作用,所以我发布了错误消息并询问出了什么问题。

我想向读者指出this other thread 这实际上更接近于我的副本,并且我之前找不到,并且有许多可能的建议可能会有所帮助,只是问题现在已经消失了,所以我无法对其进行测试。谢谢大家!

【问题讨论】:

可能由于可疑活动而暂时阻止了通过 SMTP 的访问。见***.com/questions/1607828/… 【参考方案1】:

很可能,您的 gmail 帐户中没有启用 pop 功能。如果您想使用 gmail smtp 功能,则应启用此选项。

【讨论】:

谢谢,但 POP 已启用。可能是什么问题? 我应该补充一点,这不是一个普通的 Gmail 帐户,而是一个 Google Apps 帐户。当我使用我的常规 Gmail 帐户尝试我的代码时,它有效;只有 Google Apps 帐户没有。【参考方案2】:

很可能,您的凭据不正确。请注意,您必须使用有效的活动 gmail 帐户,因此格式为:

objSMTPClient.Credentials = New System.Net.NetworkCredential("<your_user_name>@gmail.com", "<your_gmail_password>");

【讨论】:

凭据正确;我刚用他们登录。 我应该说,这不是一个普通的 Gmail 帐户,而是一个 Google Apps 帐户。当我使用我的常规 Gmail 帐户尝试我的代码时,它有效;只有 Google Apps 帐户没有。 @Fred,在这种情况下,这应该不是问题 - 请参阅 mail.google.com/support/bin/answer.py?answer=78799。您为什么不尝试在某些邮件客户端(例如 Outlook)中使用相同的设置配置帐户。

以上是关于C#发送邮件错误: System.net.mail.smtpException;服务器提交了协议冲突 服务器响应为: .的主要内容,如果未能解决你的问题,请参考以下文章

C#使用 System.Net.Mail发送邮件功能

C# 发送邮件

.NET 发送电子邮件的最佳方法(System.Net.Mail 有问题)

C#发送邮件

c# stmp邮件发送

C#新建服务自动发送邮件