【发布时间】:2015-03-20 13:44:06
【问题描述】:
编辑:我将添加该域由 Web.com 托管。也许其他人使用它们并经历过类似的事情。
下面的代码是为我自己的 smtp 服务器和 gmail 设置的。两者都因不同的原因而失败。我在 VS 2010/.Net 4 中写这个
当我从我自己的域 smtp 服务器发送时,我没有收到任何异常,我只是从不发送任何电子邮件。我试过从不同的账户发送到不同的账户。没有例外,只是永远不会交付。我更改了密码并确实收到和身份验证错误,这似乎证明我的凭据正确。我正在按照域名和端口的域名主机说明进行操作。
使用 gmail 时,我收到错误消息,“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。了解更多信息”。我阅读了有关此内容并按照链接以允许不太安全的设备访问我的 gmail。我收到了来自 gmail 的确认电子邮件,表明我已对不太安全的电子邮件进行了更改,但我仍然收到同样的错误。
我已阅读并尝试了以下链接中的所有内容,但无法通过此链接。
http://ithoughthecamewithyou.com/post/sending-email-via-gmail-in-cnet-using-smtpclient
c# SmtpClient class not able to send email using gmail
http://blogs.msdn.com/b/mariya/archive/2006/06/15/633007.aspx
在查看我正在使用的代码时,有什么地方会突然出现并且不对吗?是属性设置错误还是我缺少某个属性?
Public Shared Sub SendMailMessage(ByVal sfrom As String, ByVal recepient As String, ByVal bcc As String, ByVal cc As String, ByVal subject As String, ByVal body As String)
Try
Dim mMailMessage As New MailMessage()
mMailMessage.From = New MailAddress(sfrom)
mMailMessage.To.Add(New MailAddress(recepient))
If Not bcc Is Nothing And bcc <> String.Empty Then
mMailMessage.Bcc.Add(New MailAddress(bcc))
End If
If Not cc Is Nothing And cc <> String.Empty Then
mMailMessage.CC.Add(New MailAddress(cc))
End If
mMailMessage.Subject = subject
mMailMessage.Body = body
mMailMessage.IsBodyHtml = True
mMailMessage.Priority = MailPriority.Normal
'GMAIL
'Dim mSmtpClient As New SmtpClient()
'mSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network
'mSmtpClient.UseDefaultCredentials = True
'mSmtpClient.EnableSsl = True
'mSmtpClient.Host = "smtp.gmail.com"
'mSmtpClient.Port = 587
'mSmtpClient.Credentials = New System.Net.NetworkCredential("my gmail address", "my password")
'mSmtpClient.Send(mMailMessage)
'MY DOMAIN
Dim mSmtpClient As New SmtpClient()
mSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network
mSmtpClient.UseDefaultCredentials = True
mSmtpClient.EnableSsl = False
mSmtpClient.Host = "smtp.mydomain.com"
mSmtpClient.Port = 587
mSmtpClient.Credentials = New System.Net.NetworkCredential("my full email address", "my password")
mSmtpClient.Send(mMailMessage)
Catch ex As Exception
'HttpContext.Current.Response.Redirect("~\EmailError.aspx")
MsgBox(ex.Message, MsgBoxStyle.Information)
End Try
End Sub
【问题讨论】:
-
这个代码
MsgBox(ex.Message, MsgBoxStyle.Information)不会出现异常!!!您现在在服务器端,只需在此处记录错误... -
Msgbox 仅用于开发。你会注意到我已经注释掉了服务器上的重定向。
-
端口 587 用于两者。 Gmail 使用 SSL,我的主机明确表示不启用 SSL。当我这样做时,我得到一个异常,说该站点不支持安全连接。
标签: asp.net visual-studio-2010 gmail smtpclient