【发布时间】:2017-06-07 17:11:05
【问题描述】:
我想检查本地发送电子邮件。我用这个代码
If DT.Rows.Count > 0 Then
Dim TmpEmail As String = DT.Rows(0).Item("email").ToString
Dim mail As New MailMessage()
Dim SmtpClient As New SmtpClient("webmail.namespace.net")
mail.From = New MailAddress("mymail@mynamespace.net")
mail.[To].Add(TmpEmail)
mail.Subject = " subject" & Subject_EmailType_Max10Char
mail.IsBodyHtml = True
mail.Body = BodyHtml
SmtpClient.Port = 25
SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network
SmtpClient.UseDefaultCredentials = False
SmtpClient.Credentials = New System.Net.NetworkCredential("mymail@mynamespace.net", "########password")
SmtpClient.EnableSsl = True
SmtpClient.Timeout = 200000
SmtpClient.Send(mail)
当我向网络的同一个域发送电子邮件时,电子邮件发送成功,但是当我向 gmail 发送电子邮件时,发送电子邮件时会出现错误MailBox unavailable. The server response was: 5.7.1 Unable to relay。当我从我的电子邮件(从 Outlook)发送到那里的外部域时不是问题。
我使用框架 4.5 Visual Studio 2012。
我用谷歌搜索并找到像configured SMTP server 这样的解决方案,但我不想安装 IIS6。我想在本地检查它。有什么想法吗?
我也将我的 gmail 用作邮件。From 和 SmtpClient.Credentials 设置我的 gmail 和密码并设置 SmtpClient.Port = 587 和 Dim SmtpClient As New SmtpClient("smtp.gmail.com") 并将电子邮件发送到 gmail 帐户,问题仍然存在。错误是 失败发送邮件。。
【问题讨论】:
-
这是一个服务器配置,“webmail.comsec.gov.iq”的管理员应该启用中继发送。您无法在 c# 代码中启用它的客户端。
-
@bradbury9 但是当我从 Outlook 向外部域发送电子邮件时没有问题。管理员说中继发送已启用。
-
到目前为止我所经历的中继消息可能会在以下情况下引发:a) 您未通过电子邮件服务器的身份验证。大多数服务器只允许中继到正确经过身份验证的请求。 a) 邮件服务器不允许中继。
-
@bradbury9 我使用我的 gmail 作为
mail.From和SmtpClient.Credentials设置我的 gmail 和密码并设置SmtpClient.Port = 587和Dim SmtpClient As New SmtpClient("smtp.gmail.com")并将电子邮件发送到 gmail 帐户,问题仍然存在。错误是发送邮件失败。。 -
Gmail 不使用端口 25... 检查此答案以了解实际的 Gmail SMTP 参数和示例代码 stackoverflow.com/questions/704636/…