我的 SMTP 代码在 gmail 上工作,但是当我在 Yahoo 和 Hotmail 上尝试它时,它总是失败。我输入了正确的服务器和端口,但它仍然不允许我发送。我真的很困惑我哪里出错了,因为我能够在 gmail 下完美地发送邮件。
这是我的完整代码:
Function SendEmail(ByVal Recipients As List(Of String), _
ByVal FromAddress As String, _
ByVal Subject As String, _
ByVal Body As String, _
ByVal UserName As String, _
ByVal Password As String, _
Optional ByVal Server As String, _
Optional ByVal Port As Integer, _
Optional ByVal Attachments As List(Of String) = Nothing) As String
Dim Email As New MailMessage()
Try
Dim SMTPServer As New SmtpClient
For Each Attachment As String In Attachments
Email.Attachments.Add(New Attachment(Attachment))
Next
Email.From = New MailAddress(FromAddress)
For Each Recipient As String In Recipients
Email.To.Add(Recipient)
Next
Email.Subject = Subject
Email.Body = Body
SMTPServer.Host = Server
SMTPServer.Port = Port
SMTPServer.Credentials = New System.Net.NetworkCredential(UserName, Password)
SMTPServer.EnableSsl = True
SMTPServer.Send(Email)
SMTPServer.Timeout = 500
Email.Dispose()
Return "Email to " & Recipients(0) & " from " & FromAddress & " was sent."
Catch ex As SmtpException
Email.Dispose()
Return "Sending Email Failed. Smtp Error."
Catch ex As ArgumentOutOfRangeException
Email.Dispose()
Return "Sending Email Failed. Check Port Number."
Catch Ex As InvalidOperationException
Email.Dispose()
Return "Sending Email Failed. Check Port Number."
End Try
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Recipients As New List(Of String)
Recipients.Add("put recipient email here")
Dim FromEmailAddress As String = Recipients(0)
Dim Subject As String = "subject goes here"
Dim Body As String = "Email body goes here"
Dim UserName As String = "put username here"
Dim Password As String = "put password here"
Dim Port As Integer = port number goes here
Dim Server As String = "SMTP server goes here"
Dim Attachments As New List(Of String)
MsgBox(SendEmail(Recipients, FromEmailAddress, Subject, Body, UserName, Password, Server, Port, Attachments))
End Sub
与 gmail 相比,Yahoo 和 Hotmail 的行为是否有所不同?我对这个 SMTP 东西真的很陌生。我今天刚开始学习,请多多包涵。任何建议或意见都将被接受。提前致谢。