从VB.net Windows窗体发送电子邮件

时间:2011-03-30 08:06:52

标签: .net vb.net winforms email

我编写了以下代码,以便从VB.net Windows窗体发送电子邮件。 这是我的代码

Try
        Dim message As System.Net.Mail.MailMessage
        Dim smtp As New System.Net.Mail.SmtpClient("smtp.gmail.com")
        Dim fromMailAddress As System.Net.Mail.MailAddress
        Dim toMailAddress As System.Net.Mail.MailAddress

        fromMailAddress = New System.Net.Mail.MailAddress("fromEmailID@live.com")
        toMailAddress = New System.Net.Mail.MailAddress("toEMailID@gmail.com")

        message = New System.Net.Mail.MailMessage()
        message.From = toMailAddress
        message.To.Add(fromMailAddress)
        message.Subject = "TestFromVB"
        message.Body = "Test Message"

        smtp.EnableSsl = True
        smtp.UseDefaultCredentials = False 
        smtp.Credentials = New System.Net.NetworkCredential("emailid@gmail.com", "password")
        smtp.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.Network

        smtp.Send(message)

        MessageBox.Show("sent...") 

    Catch ex As Exception
        MessageBox.Show("error" + ex.Message + "\n" + ex.InnerException.ToString())
    End Try

每当我点击按钮发送时,都应该发送电子邮件到指定的地址。这段代码提供了一些错误,说无法连接到远程计算机....

以下是异常的屏幕截图 enter image description here

任何人都可以帮我解决这个问题。或者如果您有任何工作样品,请提出建议。

3 个答案:

答案 0 :(得分:4)

我认为您需要使用其他端口号587465

根据this GMail文件。

  
      
  • 接收邮件(POP3)服务器 - 需要SSL: pop.gmail.com

         
        
    • 使用SSL:Yes
    •   
    • 端口:995
    •   
  •   
  • 发送邮件(SMTP)服务器 - 需要TLS或SSL:   smtp.gmail.com

         
        
    • 使用身份验证:Yes
    •   
    • TLS / STARTTLS的端口:587
    •   
    • SSL端口:465
    •   
    • 帐户名称:your full email address (including @gmail.com or @your_domain.com)
    •   
    • 电子邮件地址:your email address (username@gmail.com or username@your_domain.com)
    •   
    • 密码:your Gmail password
    •   
  •   

答案 1 :(得分:0)

GMail使用端口587作为smtp服务器。请参阅此代码示例:

http://www.fryan0911.com/2009/10/how-to-send-email-via-gmail-smtp-in.html

答案 2 :(得分:0)

对于其他任何偶然发现此问题的人,除了其他答案所指出的端口需要正确之外,很多时候Google不会在不更改您的Google帐户设置的情况下从Vb.net程序进行身份验证以降低安全性连接。 link to google settings