Send Email Using Hotmail/Live/Outlook/Office 365 In VB.NET

  1. Home
  2. EASendMail SMTP Component
  3. KB
  4. VB.NET
  5. Send Email using Hotmail/Live/Outlook/Office 365 in VB.NET

Tutorial Index

  • Send Email in VB.NET - Tutorial
    • Send Email in A Simple VB Project using SMTP protocol
      • Installation
      • Add Reference
      • .NET Assembly
      • [VB.NET - Send Email - Example]
    • Common SMTP Transport Error
    • TLS 1.2
    • Where can I get my SMTP email server address, user and password?
    • Email Address Syntax and Multiple Recipients
    • From, ReplyTo, Sender and Return-Path
    • Mail Priority
    • Troubleshooting
      • “No Such Host” exception
      • Common “Networking Connection” Exception
      • Using Telnet to detect networking connection to SMTP server
      • SMTP 25, 587, 465 port
      • “5xx … IP address block or on black list or bad reputation” Exception
      • “5xx user authenticaton” Exception
      • “5xx relay denied” Exception
      • “5xx Must issue a STARTTLS command first”
      • “No supported authentication marshal found!”
      • Other error returned by SMTP server
    • Process Bounced Email (Non-Delivery Report)
    • Email Tracking
    • Bulk Email Sender Guidelines
  • Send Email over SSL/TLS in VB.NET
    • SSL and TLS Introduction
    • TLS 1.2
    • [VB.NET - Send Email over SSL/TLS Setting - Example]
    • [VB.NET - Send Email over Implicit SSL on 465 port - Example]
    • [VB.NET - Send Email over TLS (Explicit SSL) on 25 or 587 port - Example]
    • SMTP Setting for Gmail, Yahoo, Hotmail and Office 365
  • Send Email using Gmail in VB.NET
    • Introduction
    • Gmail App Password
    • [VB.NET - Send Email using Gmail Account over Implicit SSL on 465 Port]
    • [VB.NET - Send Email using Gmail Account over Explicit SSL (TLS) on 25 or 587 Port]
    • Gmail SMTP OAUTH
    • TLS 1.2
  • Send Email using Yahoo in VB.NET
    • Introduction
    • [VB.NET - Send Email using Yahoo over Implicit SSL on 465 Port - Example]
    • [VB.NET - Send Email using Yahoo over Explicit SSL (TLS) on 25 or 587 Port - Example]
    • TLS 1.2
  • Send Email using Hotmail/Live/Outlook/Office 365 in VB.NET
    • Introduction
    • [VB.NET - Send Email using Hotmail/Live/Outlook.com over Explicit SSL (TLS) on 25 or 587 Port - Example]
    • Hotmail SMTP OAUTH
    • Send Email using Office 365
    • App Password and SmtpClientAuthenticationDisabled
    • Office365 SMTP/EWS/Ms Graph API OAUTH
    • TLS 1.2
  • Send Email directly without SMTP server(MX DNS lookup) in VB.NET
    • Introduction
    • [VB.NET - Send Email without SMTP Server (MX record DNS lookup) - Example]
  • Send HTML Email in VB.NET
    • Introduction
    • [VB.NET- Send HTML Email - Example]
    • Import Html to email directly
  • Send Email with Attachment in VB.NET
    • Introduction
    • [VB.NET - Send Email with Attachment - Example]
  • Send Email with Embedded Images in VB.NET
    • Introduction
    • [VB.NET - Send Email with Embedded Images - Example]
    • [VB.NET - Send Email with Embedded Images - ImportHtml - Example]
  • Send Email with Digital Signature in VB.NET - S/MIME with SHA1, SHA256, SHA384 and SHA512
    • Introduction
    • [VB.NET - Send Email with Digital Signature (S/MIME) - Example]
    • Signature Algorithm
  • Encrypt Email in VB.NET - S/MIME with RC2, 3DES and RSAES-OAEP
    • Introduction
    • [VB.NET - Encrypt Email (S/MIME) - Example]
    • Encryption Algorithm
  • Send Email with Event Handler in VB.NET
    • Introduction
    • [VB.NET - Send Email with Event Handler - Example]
  • Send Email Asynchronously in VB.NET
    • Introduction
    • [VB.NET - Send Email Asynchronously - Example]
    • [VB.NET - Send Email with TAP (async, wait) - Example]
  • Send Email with Multiple Threads(Mass Mail) in VB.NET
    • Introduction
    • [VB.NET - Send Mass Emails with Multiple Threads - Example]
  • Send Email with Queue in ASP.NET, VB.NET
    • Introduction
    • [VB.NET - Send Email with Queue - Example]
  • Send Mass Emails using Database Queue in ASP.NET, VB.NET
    • Introduction
    • [VB.NET/ASP.NET - Send Mass Emails with EASendMail Service Database Queue - Example]
    • Database Server Driver
  • Send Email using Exchange Web Service - EWS in VB.NET
    • Introduction
    • [VB.NET - Send Email using Exchange Web Service (EWS) - Example]
    • Exchange Server 2007 EWS Issue
    • Manage Send As Permissions in Exchange 2007/2010/2013
  • Send Email using Exchange WebDAV in VB.NET
    • Introduction
    • [VB.NET - Send Email using Exchange WebDAV - Example]
  • VB.NET - Sample Projects for SMTP, SSL, TLS, Embedded Images, S/MIME, EWS, Email Queue
    • .NET Framework Sample Projects
      • ASP.NET Form
      • ASP.NET MVC
      • .NET Desktop (Windows Form)
      • Windows CE/PocketPC
      • PowerShell
    • ActiveX Object Sample Projects
      • ASP Classic
      • Delphi
      • MS SQL Server
      • Script
      • VB6
      • VBA/Execl
      • VBA/MS Access
      • VC++
Send Email using Hotmail/Live/Outlook/Office 365 in VB.NET¶

In previous section, I introduced how to send email using Yahoo account. In this section, I will introduce how to send email using Hotmail/Live/Outlook/Office 365 in VB.NET.

Sections:

  • Introduction
  • [VB.NET - Send Email using Hotmail/Live/Outlook.com over Explicit SSL (TLS) on 25 or 587 Port - Example]
  • Hotmail SMTP OAUTH
  • Send Email using Office 365
  • App Password and SmtpClientAuthenticationDisabled
  • Office365 SMTP/EWS/Ms Graph API OAUTH
  • TLS 1.2

Introduction¶

Hotmail/Live/Outlook.com SMTP server address is smtp.office365.com. It requires explicit SSL (TLS) connection to do user authentication, and you should use your Hotmail/Live/Outlook.com email address as the user name for ESMTP authentication. For example: your email is [email protected], and then the user name should be [email protected].

Server Port SSL/TLS
smtp.office365.com 25, 587 TLS

Note

Remarks: All of samples in this section are based on first section: Send email in a simple VB.NET project. To compile and run the following example codes successfully, please click here to learn how to create the test project and add reference of EASendMail to your project.

[VB.NET - Send Email using Hotmail/Live/Outlook.com over Explicit SSL (TLS) on 25 or 587 Port - Example]¶

The following example codes demonstrate how to send email using Hotmail/Live/Outlook.com in VB.NET over TLS 25 or 587 port.

Note

To get the full sample projects, please refer to Samples section.

Imports EASendMail 'Add EASendMail namespace Module Module1 Sub Main() Try Dim oMail As New SmtpMail("TryIt") ' Your hotmail email address oMail.From = "[email protected]" ' Set recipient email address, please change it to yours oMail.To = "[email protected]" ' Set email subject oMail.Subject = "test email from hotmail account" ' Set email body oMail.TextBody = "this is a test email sent from VB.NET project with hotmail" ' Hotmail SMTP server address Dim oServer As New SmtpServer("smtp.office365.com") ' Hotmail user authentication should use your ' email address as the user name. oServer.User = "[email protected]" ' If you got authentication error, try to create an app password instead of your user password. ' https://support.microsoft.com/en-us/account-billing/using-app-passwords-with-apps-that-don-t-support-two-step-verification-5896ed9b-4263-e681-128a-a6f2979a7944 oServer.Password = "your password or app password" ' set 587 port, if you want to use 25 port, please change 587 to 25 oServer.Port = 587 ' detect SSL/TLS connection automatically oServer.ConnectType = SmtpConnectType.ConnectSSLAuto Console.WriteLine("start to send email over SSL ...") Dim oSmtp As New SmtpClient() oSmtp.SendMail(oServer, oMail) Console.WriteLine("email was sent successfully!") Catch ep As Exception Console.WriteLine("failed to send email with the following error:") Console.WriteLine(ep.Message) End Try End Sub End Module

Hotmail SMTP OAUTH¶

If your account enabled two-factor authentication, you cannot login your account by normal user authentication, you should use SMTP OAUTH or App Password.

Microsoft Live SMTP servers (Hotmail, Oultook personal account) have been extended to support authorization via the industry-standard OAuth 2.0 protocol. Using OAUTH protocol, user can do authentication by Microsoft Web OAuth instead of inputting user and password directly in application.

Microsoft will disable traditional user authentication in the future, switching to Microsoft OAuth (Modern Authentication) is strongly recommended now.

  • Send Email from Hotmail/Outlook/Live using User Interaction OAuth

Or you can generate App Passwords and use this app password instead of your user password.

Send Email using Office 365¶

Office 365 SMTP server uses 587 port and explicit SSL (TLS) connection.

Server Port SSL/TLS
smtp.office365.com 25, 587 (recommended) TLS

App Password and SmtpClientAuthenticationDisabled¶

If your account enabled two-factor authentication, you cannot login your account by normal user authentication, you should create an App Passwords and use this App Password instead of the user password.

You should also check if authenticated client SMTP submission (SMTP AUTH) is enabled:

Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online.

Last update: Microsoft has disabled App password, you have to switch to Hotmail SMTP OAUTH and Office365 SMTP/EWS/Ms Graph API OAUTH. If you don’t want to change your code, you can have a try with EA Oauth Service.

[VB.NET - Send Email using Office 365 over Explicit SSL (TLS) on 587 Port - Example]

The following example codes demonstrate how to send email using Office 365 in VB.NET over TLS 587 port.

Note

To get the full sample projects, please refer to Samples section.

Imports EASendMail 'Add EASendMail namespace Module Module1 Sub Main() Try Dim oMail As New SmtpMail("TryIt") ' Your office 365 email address oMail.From = "myid@mydomain" ' Set recipient email address, please change it to yours oMail.To = "[email protected]" ' Set email subject oMail.Subject = "test email from office 365 account" ' Set email body oMail.TextBody = "this is a test email sent from VB.NET project with hotmail" ' Your Office 365 SMTP server address, Dim oServer As New SmtpServer(" smtp.office365.com") ' user authentication should use your ' email address as the user name. oServer.User = "myid@mydomain" ' If you got authentication error, try to create an app password instead of your user password. ' https://support.microsoft.com/en-us/account-billing/using-app-passwords-with-apps-that-don-t-support-two-step-verification-5896ed9b-4263-e681-128a-a6f2979a7944 oServer.Password = "your password or app password" ' Set 587 port oServer.Port = 587 ' detect SSL/TLS connection automatically oServer.ConnectType = SmtpConnectType.ConnectSSLAuto Console.WriteLine("start to send email over SSL ...") Dim oSmtp As New SmtpClient() oSmtp.SendMail(oServer, oMail) Console.WriteLine("email was sent successfully!") Catch ep As Exception Console.WriteLine("failed to send email with the following error:") Console.WriteLine(ep.Message) End Try End Sub End Module

Office365 SMTP/EWS/Ms Graph API OAUTH¶

If your account enabled two-factor authentication, you cannot login your account by normal user authentication, you should use SMTP/EWS/Ms Graph API OAUTH or App Password.

Microsoft Office365 SMTP/EWS/Ms Graph API servers have been extended to support authorization via the industry-standard OAuth 2.0 protocol. Using OAUTH protocol, user can do authentication by Microsoft Web OAuth instead of inputting user and password directly in application. This way is more secure, but a little bit complex.

  • Send Email from Office365 using User Interaction OAuth
  • Send Email from Office365 in Background Service

Or you can generate App Passwords and use this app password instead of your user password.

TLS 1.2¶

TLS is the successor of SSL, more and more SMTP servers require TLS 1.2 encryption now.

If your operating system is Windows XP/Vista/Windows 7/Windows 2003/2008/2008 R2/2012/2012 R2, and you got connection error with SSL/TLS connection, you need to enable TLS 1.2 protocol in your operating system like this:

Enable TLS 1.2 on Windows XP/Vista/7/10/Windows 2008/2008 R2/2012

Next Section

At next section I will introduce how to send email without specified SMTP server.

  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • »

Appendix

  • EASendMail SMTP Component SDK
  • Process Bounced Email (Non-Delivery Report) and Email Tracking
  • Bulk Email Sender Guidelines
  • Work with Email Queue

Comments

If you have any comments or questions about above example codes, please click here to add your comments.

Share
  • Facebook
  • Google+
  • Twitter
  • LinkedIn
See Also
  • C#
  • VB.NET
  • C++/CLI/CLR
  • PowerShell
  • VB6
  • Visual C++
  • Delphi
  • MS SQL Server
  • VBScript/VBA Excel
  • VBScript/VBA Access
  • C# - UWP
  • VB - UWP
  • Javascript - UWP
  • Download

Từ khóa » Visual Basic Send Email Office 365