system.net.mail requires starttls

HalCHub
HalCHub used Ask the Experts™
on
how to I fix I get an error that it requires a starttls
Imports System.Net.Mail
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try

            Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            SmtpServer.Credentials = New Net.NetworkCredential("me@gmail.com", "password")
            SmtpServer.Port = 587
            SmtpServer.Host = "smtp.gmail.com"
            mail = New MailMessage()
            mail.From = New MailAddress("me@gmail.com", "my name")
            mail.To.Add("me@hotmail.com")
            mail.Subject = "Test Mail"
            mail.Body = "This Is for testing SMTP mail from GMAIL"
            SmtpServer.Send(mail)
            MsgBox("mail send")
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
End Class
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Michael FowlerSolutions Consultant

Commented:
try setting enableSSL to true

SmtpServer.EnableSsl = true;

Open in new window

https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl.aspx

Author

Commented:
nope here is a different version

    Private Sub test(Optional ByVal smtp As String = "smtp.gmail.com")
        Dim toAdd As String = " test@gmail.com"
        Dim fromAdd As String = "test@gmail.com"
        Dim pass As String = "pswd"
        Dim client As SmtpClient = New SmtpClient(smtp)
        Dim mail As New MailMessage
        mail.From = New MailAddress(fromAdd)
        mail.To.Add(toAdd)
        mail.Subject = "Test Zip File"
        mail.Body = "This Is just a test"
        client.Port = 465 '465 587  25
        client.Credentials = New System.Net.NetworkCredential(fromAdd, pass)
        client.EnableSsl = True
        MsgBox("here")
        '   client.Timeout = Int32.MaxValue
        Try
            client.Send(mail)

        Catch ex As SmtpException
            MsgBox(ex.Message)
        End Try
        MsgBox("done")
    End Sub

port 465 times out
port 25 gives a starttls error
port 587 give required secure connection
Michael FowlerSolutions Consultant

Commented:
Your code looks fine, assuming you are using a valid email/user/pass in your actual code.

This google support article has more ideas for testing
https://support.google.com/mail/answer/78775?hl=en

The first is to confirm that you can log into the account you are using manually and so validate your credentials

Another good test is telnet to confirm that a connection can be made from your machine
eg telnet smtp.gmail.com 587
C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

Rafiq J.Net Developer

Commented:
<network host="smtp.gmail.com" enableSsl="true" ... />
.Net Developer
Commented:
try this logic

 string fromaddr = "YOURMAILID@gmail.com";
        string toaddr = TextBox1.Text;//TO ADDRESS HERE
        string password = "YOUR PASSWROD";


        MailMessage msg = new MailMessage();
        msg.Subject = "Username &password";
        msg.From = new MailAddress(fromaddr);
        msg.Body = "Message BODY";
        msg.To.Add(new MailAddress(TextBox1.Text));
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.Port = 587;
        smtp.UseDefaultCredentials = false;
        smtp.EnableSsl = true;
        NetworkCredential nc = new NetworkCredential(fromaddr,password);
        smtp.Credentials = nc;
        smtp.Send(msg);


Like me if it's helps

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial