Galacticai
Galacticai

Reputation: 97

VB: Email sending with SMTP is failing

I'm adding an email sender in my app, so i used this:

Try
    Dim oMail As New SmtpMail("TryIt")
    Dim oSmtp As New SmtpClient()
    oMail.From = "[email protected]" ' From
    oMail.To = "[email protected]" ' To
    oMail.Subject = Title.Text 'Title
    oMail.TextBody = MsgTxt.Text 'Body
    Dim oServer As New SmtpServer("smtp.live.com") ' SMTP server address
    oServer.User = "[email protected]" 'here i have written my app's email address made for sending the email from this form
    oServer.Password = "thepassword" 'here i have put my app email password
    oServer.ConnectType = SmtpConnectType.ConnectSSLAuto ' if SSL connection required
    UseWaitCursor = True

Here done setting the main needed info

    oSmtp.SendMail(oServer, oMail)

Sending...

    UseWaitCursor = False
    MessageBox.Show("E-Mail Sent Successfully", "Contact by E-Mail", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Main.BringToFront()
    Main.Enabled = True
    Close()

Error catching...

Catch ep As Exception
    UseWaitCursor = False
    MessageBox.Show("Error while sending E-Mail." & vbCrLf & vbCrLf & ep.Message, "Contact by E-Mail", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Dim closeerror = MessageBox.Show("Do you want to close?", "Contact by E-Mail", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If closeerror = DialogResult.Yes Then
        Main.BringToFront()
        Main.Enabled = True
        Close()
    End If
End Try

Is this code wrong? i used a lot of ways to send email but none worked

This time i got error: 550 5.3.4 Requested action not taken; To continue sending messages, please sign in to your account.

Upvotes: 1

Views: 1211

Answers (2)

tezzo
tezzo

Reputation: 11105

Usually you need to specify port and authentication type in order to connect to an smtp server. It seems that smtp.live.com use SSL and port 465 (please verify this data).

So you can use SmtpClient.Port property to sets the port used for SMTP transactions and SmtpClient.EnableSSL to specify that SmtpClient uses Secure Sockets Layer (SSL) to encrypt the connection.

Upvotes: 0

c4pricorn
c4pricorn

Reputation: 3481

Modify and try this working example:

Imports System.Net.Mail
...
Try
    Dim Email As New MailMessage()
    Email.From = New MailAddress("[email protected]")
    Email.To.Add("[email protected]")
    Email.Subject = "Subject"
    Email.IsBodyHtml = False        'or true if you want html
    Email.Body = TextBox1.Text

    Dim EmailClient As New SmtpClient("smtp.gmail.com", 587)
    EmailClient.EnableSsl = True
    EmailClient.Credentials = New Net.NetworkCredential("[email protected]", "password")
    EmailClient.Timeout = 7000
    EmailClient.Send(Email)

Catch ex As SmtpException
    MsgBox(ex.StatusCode & vbCrLf & ex.Message, vbCritical, "SMTP Error!")
End Try

Upvotes: 2

Related Questions