【发布时间】:2011-02-23 19:57:02
【问题描述】:
我正在使用以下代码从我的 vb.net Web 应用程序发送电子邮件。
Public Function SendMail(ByVal strTo As String, ByVal strFrom As String, _
ByVal strSubject As String, ByVal strBody As String) As String
Try
Dim SmtpServer As New SmtpClient()
Dim mail As New MailMessage()
SmtpServer.Credentials = New _
Net.NetworkCredential("ns1.jasmine.arvixe.com", "<password>")
SmtpServer.Port = 587
SmtpServer.Host = "mail.<mydomain>.com"
mail = New MailMessage()
mail.From = New MailAddress(strFrom)
mail.To.Add(strTo)
mail.Subject = strSubject
mail.IsBodyHtml = True
mail.Body = strBody
SmtpServer.Send(mail)
Return True
Catch ex As Exception
Return False
End Try
End Function
当我使用我的个人 live.co.uk 电子邮件地址作为 strFrom 值时,它工作正常,甚至是一个虚构的电子邮件地址。但是,当我使用另一个完全有效且正常工作的 (contact@mydomain.com) 时,我收到以下错误:
“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:需要 SMTP 身份验证。”
为什么会这样?
【问题讨论】:
-
如果设置 mail.From ="test@
.com" 会发生什么? -
旁注:捕获和忽略异常被认为是非常糟糕的设计。抛出异常是有原因的。一般来说,一个人应该至少记录它们。
标签: vb.net email smtp visual-studio-2003