【发布时间】:2014-06-30 07:47:39
【问题描述】:
我是 asp.net 的新手,我正在尝试通过这个短代码发送电子邮件。
Public Class sMail
Public emailBody As String
Public emailSubject As String
'Public sendTo As String
Public Function sendMail() As Boolean
Dim eMail As New System.Net.Mail.MailMessage
Dim smtpClient As New System.Net.Mail.SmtpClient("mydomain", 25)
Dim credentials As New System.Net.NetworkCredential("info@mydomain.com", "password")
smtpClient.Credentials = credentials
smtpClient.UseDefaultCredentials = True
smtpClient.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.Network
eMail.From = New System.Net.Mail.MailAddress("info@mydomain.com", "Info")
eMail.To.Add(New Net.Mail.MailAddress("example@outsidedomain.com"))
eMail.Subject = emailSubject
eMail.Body = emailBody
eMail.BodyEncoding = System.Text.Encoding.UTF8
eMail.IsBodyHtml = False
Try
smtpClient.Send(eMail)
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class
在我的域之外发送邮件(gMail、Hotmail 等)我得到: 邮箱不可用。服务器响应为:中继需要身份验证
但是,我在自己的域上发送电子邮件没有问题。
我尝试了几个更改,但同样的错误。以下不起作用
- 更改 UseDefaultCredentials;
- 启用/禁用 ssl ;
但是,当我在 Outlook 中使用相同的 SMTP 设置时,我得到了相同的错误 服务器错误:“中继需要 550 身份验证” 在我自己的域之外发送邮件时。例如在 hotmail、gmail 上。
但是当我在 Outlook 中更改帐户设置并勾选:我的发送 (SMTP) 服务器需要身份验证 -> 使用与接收邮件服务器相同的设置,我可以向任何域发送电子邮件。
我想不通,谁能指导我?
【问题讨论】: