簡體   English   中英

在VB.net上發送電子郵件

[英]Send an email on VB.net

誰能幫我。 我創建了一個電子郵件程序。 單擊發送按鈕時出現錯誤。 這是我的代碼:

Imports System.Net.Mail

Public Class frmEmail
Dim emailaddress As String
Dim password As String
Dim port As Integer
Dim host As String

Private Sub frmEmail_Load(sender As Object, e As EventArgs)

 If emailaddress.ToLower.Contains("@gmail") Then
        port = 587
        host = "smtp.gmail.com"
    ElseIf emailaddress.ToLower.Contains("@yahoo") Then
        port = 465
        host = "smtp.mail.yahoo.com"
    End If

End Sub

Private Sub btnSend_Click(ByVal sender As Object, ByVal e As    EventArgs) Handles btnSend.Click
    Try
        Dim smtpServer As New SmtpClient
        Dim mail As New MailMessage()
        smtpServer.Credentials = New Net.NetworkCredential(emailaddress, password)
        smtpServer.Port = port
        smtpServer.Host = host
        smtpServer.EnableSsl = True
        mail = New MailMessage()
        mail.From = New MailAddress(emailaddress)
        mail.To.Add(txtTo.Text)
        mail.Subject = txtSubject.Text
        mail.Body = txtMessage.Text
        smtpServer.Send(mail)
        MsgBox("The mail is send!", MsgBoxStyle.Information)
    Catch error_t As Exception
        MsgBox(error_t.ToString)
    End Try
End Sub
End Class

而且我遇到了以下錯誤:System.ArgumentOutOfRangeException:指定的參數不在有效值范圍內。 參數名稱:System.Net.Mail.SmtpClient.set_Port處的值(Int32值)

***編輯忘記將其修改為原始代碼

您的子私人子frmEmail_Load(作為對象發送,作為EventArgs發送)

窗體加載時不運行。

由於此port設置為默認值0

您需要告訴VB.Net在表單加載時運行,如下所示

Private Sub frmEmail_Load(sender As Object, e As EventArgs) Handles MyBase.Load

同樣在代碼下方,您可能會發現從電子郵件服務器收到有關身份驗證的錯誤。 如果得到這個,就在下面

Dim smtpServer As New SmtpClient

加上這個

smtpServer.UseDefaultCredentials = False

它可能會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM