Gets or sets the protocol (SMTP/Exchange Web Service/Exchange WebDav) for mail server.
[Visual Basic] Public Property Protocol As ServerProtocol
[C#] public ServerProtocol Protocol {get; set;}
[C++] public: __property ServerProtocol get_Protocol(); public: __property void set_Protocol(ServerProtocol);
[JScript] public function get Protocol() : ServerProtocol; public function set Protocol(ServerProtocol);
Property Value
Remarks
Standard SMTP protocol based on TCP/IP, all email servers support this protocol, Exchange Server also supports SMTP protocol. Using SMTP protocol is always recommended.
Exchange WebDAV is a set of methods based on the HTTP protocol to manage users, messages in Microsoft Exchange Server. We can use HTTP or HTTP/HTTPS protocol to send email with Exchange WebDAV instead of SMTP protocol. But since Exchange 2007, WebDAV service is disabled by default, so we only suggest that you use WebDAV protocol in Exchange 2000/2003.
Exchange Web Services (EWS), an alternative to the MAPI protocol, is a documented SOAP based protocol introduced with Exchange Server 2007. We can use HTTP or HTTPS protocol to send email with Exchange Web Services (EWS) instead of SMTP protocol. We only suggest that you use EWS protocol in Exchange 2007/2010/2013 or later version.
Gmail supports SMTP + OAUTH, but the API (https://mail.google.com/) scope is restricted API which requests to have full access to the Gmail account. Restricted API is throttled before your project is authenticated by Google.
Using less restricted API (https://www.googleapis.com/auth/gmail.send) scope to send email via Gmail server is recommended.
Example
[Visual Basic, C#, C++] The following example demonstrates how to send email with SmtpClient class. To get the full samples of EASendMail, please refer to Samples section.
Example
[Visual Basic, C#, C++] To get the full samples of EASendMail, please refer to Samples section.
[Visual Basic - Send Email using Stanard SMTP Protocol] Imports EASendMail Sub SendMail_SMTP() Try Dim oServer As SmtpServer = New SmtpServer("smtp.adminsystem.com") ' set user authentication oServer.User = "myuser@adminsystem.com" oServer.Password = "mypassword" ' specifies the authentication mechanism, AuthAuto is default value ' oSmtp.AuthType = SmtpAuthType.AuthAuto ' Most mordern SMTP servers require SSL/TLS connection now. ' ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically. oServer.ConnectType = SmtpConnectType.ConnectTryTLS ' set SSL/TLS connection ' oServer.ConnectType = SmtpConnectType.ConnectSSLAuto ' set SMTP server port to 587, default value is 25 ' oServer.Port = 587 ' set SMTP server port to 465, ' if 465 port is used, ConnectType should use ConnectSSLAuto or ConnectDirectSSL. ' oServer.Port = 465 ' set helo domain, default value is current machine name ' oServer.HeloDomain = "mymachine.com" Dim oMail As SmtpMail = New SmtpMail("TryIt") oMail.From = New MailAddress("from@adminsystem.com") oMail.To.Add(New MailAddress("to@adminsystem.com")) oMail.Subject = "test email sent from VB" oMail.TextBody = "test body" Dim oSmtp As SmtpClient = New SmtpClient() oSmtp.SendMail(oServer, oMail) Console.WriteLine("This email has been submitted to server successfully!") Catch exp As Exception Console.WriteLine("Exception: {0}", exp.Message) End Try End Sub
[Visual Basic - Send Email using Exchange Web Service - EWS] Imports EASendMail Sub SendMail_Exchange_EWS() Try ' Your Exchange server address Dim oServer As SmtpServer = New SmtpServer("exch.adminsystem.com") ' Set Exchange Web Service protocol (EWS) - Exchange 2007/2010/2013/2016/2019/Office 365 oServer.Protocol = ServerProtocol.ExchangeEWS ' User and password for Exchange User authentication oServer.User = "myuser@adminsystem.com" oServer.Password = "mypassword" ' By default, Exchange Web Service requires SSL connection oServer.ConnectType = SmtpConnectType.ConnectSSLAuto Dim oMail As SmtpMail = New SmtpMail("TryIt") oMail.From = New MailAddress("myuser@adminsystem.com") oMail.To.Add(New MailAddress("to@adminsystem.com")) oMail.Subject = "test email sent from VB with EWS protocol" oMail.TextBody = "test body" Dim oSmtp As SmtpClient = New SmtpClient() oSmtp.SendMail(oServer, oMail) Console.WriteLine("This email has been submitted to server successfully!") Catch exp As Exception Console.WriteLine("Exception: {0}", exp.Message) End Try End Sub
[Visual Basic - Send Email using Exchange WebDAV] Imports EASendMail Sub SendMail_Exchange_WebDav() Try ' Your Exchange server address Dim oServer As SmtpServer = New SmtpServer("exch.adminsystem.com") ' Set Exchange WebDAV protocol - Exchange 2000/2003 oServer.Protocol = ServerProtocol.ExchangeWebDav ' User and password for Exchange User authentication oServer.User = "adminsystem.com\myuser" oServer.Password = "testpassword" ' if your server requires SSL conection, add this line ' oServer.ConnectType = SmtpConnectType.ConnectSSLAuto Dim oMail As SmtpMail = New SmtpMail("TryIt") oMail.From = New MailAddress("myuser@adminsystem.com") oMail.To.Add(New MailAddress("to@adminsystem.com")) oMail.Subject = "test email sent from VB with WebDAV protocol" oMail.TextBody = "test body" Dim oSmtp As SmtpClient = New SmtpClient() oSmtp.SendMail(oServer, oMail) Console.WriteLine("This email has been submitted to server successfully!") Catch exp As Exception onsole.WriteLine("Exception: {0}", exp.Message) End Try End Sub
[C# - Send Email using Standard SMTP protocol] using System; using EASendMail; void SendMail_SMTP() { try { // SMTP server address SmtpServer oServer = new SmtpServer("smtp.adminsystem.com"); // SMTP user authentication oServer.User = "myusername"; oServer.Password = "mypassword"; // specifies the authentication mechanism, AuthAuto is default value // oSmtp.AuthType = SmtpAuthType.AuthAuto; // Most mordern SMTP servers require SSL/TLS connection now. // ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically. oServer.ConnectType = SmtpConnectType.ConnectTryTLS; // set SSL/TLS connection // oServer.ConnectType = SmtpConnectType.ConnectSSLAuto; // set SMTP server port to 587, default value is 25 // oServer.Port = 587; // set SMTP server port to 465, // if 465 port is used, ConnectType should use ConnectSSLAuto or ConnectDirectSSL. // oServer.Port = 465; // set helo domain, default value is current machine name // oServer.HeloDomain = "mymachine.com"; SmtpMail oMail = new SmtpMail("TryIt"); oMail.From = new MailAddress("from@adminsystem.com"); oMail.To.Add(new MailAddress("to@adminsystem.com")); oMail.Subject = "test email sent from C#"; oMail.TextBody = "test body"; SmtpClient oSmtp = new SmtpClient(); oSmtp.SendMail(oServer, oMail); Console.WriteLine("This email has been submitted to server successfully!"); } catch(Exception exp) { Console.WriteLine("Exception: {0}", exp.Message); } }
[C# - Send Email using Exchange Web Service - EWS] using System; using EASendMail; void SendMail_Exchange_EWS() { try { // Your Exchange server address SmtpServer oServer = new SmtpServer("exch.emailarchitect.net"); // Set Exchange Web Service protocol (EWS) - Exchange 2007/2010/2013/2016/2019/Office 365 oServer.Protocol = ServerProtocol.ExchangeEWS; // User and password for Exchange authentication oServer.User = "test@emailarchitect.net"; oServer.Password = "testpassword"; // By default, Exchange Web Service requires SSL connection oServer.ConnectType = SmtpConnectType.ConnectSSLAuto; SmtpMail oMail = new SmtpMail("TryIt"); oMail.From = new MailAddress("test@emailarchitect.net"); oMail.To.Add(new MailAddress("to@adminsystem.com")); oMail.Subject = "test email sent from C# with EWS protocol"; oMail.TextBody = "test body"; SmtpClient oSmtp = new SmtpClient(); oSmtp.SendMail(oServer, oMail); Console.WriteLine("This email has been submitted to server successfully!"); } catch (Exception exp) { Console.WriteLine("Exception: {0}", exp.Message); } }
[C# - Send Email using Exchange WebDAV] using System; using EASendMail; void SendMail_Exchange_WebDav() { try { // Your Exchange server address SmtpServer oServer = new SmtpServer("exch.emailarchitect.net"); // Set Exchange WebDAV protocol (EWS) - Exchange 2000/2003 oServer.Protocol = ServerProtocol.ExchangeWebDav; // User and password for Exchange authentication oServer.User = "emailarchitect.net\\test"; oServer.Password = "testpassword"; // If your Exchange WebDav requires SSL connection, please add this line // oServer.ConnectType = SmtpConnectType.ConnectSSLAuto; SmtpMail oMail = new SmtpMail("TryIt"); oMail.From = new MailAddress("test@emailarchitect.net"); oMail.To.Add(new MailAddress("to@adminsystem.com")); oMail.Subject = "test email sent from C# with WebDAV protocol"; oMail.TextBody = "test body"; SmtpClient oSmtp = new SmtpClient(); oSmtp.SendMail(oServer, oMail); Console.WriteLine("This email has been submitted to server successfully!"); } catch (Exception exp) { Console.WriteLine("Exception: {0}", exp.Message); } }
[C++ - Send Email using Standard SMTP Protocol] using namespace System; using namespace EASendMail; void SendMail_SMTP() { try { // SMTP server address SmtpServer ^oServer = gcnew SmtpServer("smtp.adminsystem.com"); // SMTP user authentication oServer->User = "myusername"; oServer->Password = "mypassword"; // specifies the authentication mechanism, AuthAuto is default value // oSmtp.AuthType = SmtpAuthType::AuthAuto; // Most mordern SMTP servers require SSL/TLS connection now. // ConnectTryTLS means if server supports SSL/TLS, SSL/TLS will be used automatically. oServer->ConnectType = SmtpConnectType::ConnectTryTLS; // set SSL/TLS connection // oServer->ConnectType = SmtpConnectType::ConnectSSLAuto; // set SMTP server port to 587, default value is 25 // oServer->Port = 587; // set SMTP server port to 465, // if 465 port is used, ConnectType should use ConnectSSLAuto or ConnectDirectSSL. // oServer->Port = 465; // set helo domain, default value is current machine name // oServer->HeloDomain = "mymachine.com"; SmtpMail ^oMail = gcnew SmtpMail("TryIt"); oMail->From = gcnew MailAddress("from@adminsystem.com"); oMail->To->Add(gcnew MailAddress("to@adminsystem.com")); oMail->Subject = "test email sent from C++/CLI"; oMail->TextBody = "test body"; SmtpClient ^oSmtp = gcnew SmtpClient(); oSmtp->SendMail(oServer, oMail); Console::WriteLine("This email has been submitted to server successfully!"); } catch(Exception ^exp) { Console::WriteLine("Exception: {0}", exp->Message); } }
[C++ - Send Email using Exchange Web Service - EWS] using namespace System; using namespace EASendMail; void SendMail_Exchange_EWS() { try { // Your Exchange server address SmtpServer ^oServer = gcnew SmtpServer("exch.emailarchitect.net"); // Set Exchange Web Service Protocol - EWS - Exchange 2007/2010/2013/2016/2019/Office 365 oServer->Protocol = ServerProtocol::ExchangeEWS; // User and password for Exchange Web Service authentication oServer->User = "test@emailarchitect.net"; oServer->Password = "testpassword"; // By default, Exchange Web Service requires SSL connection. oServer->ConnectType = SmtpConnectType::ConnectSSLAuto; SmtpMail ^oMail = gcnew SmtpMail("TryIt"); oMail->From = gcnew MailAddress("test@emailarchitect.net"); oMail->To->Add(gcnew MailAddress("to@adminsystem.com")); oMail->Subject = "test email sent from C++/CLI with EWS protocol"; oMail->TextBody = "test body"; SmtpClient ^oSmtp = gcnew SmtpClient(); oSmtp->SendMail(oServer, oMail); Console::WriteLine("This email has been submitted to server successfully!"); } catch (Exception ^exp) { Console::WriteLine("Exception: {0}", exp->Message); } }
[C++ - Send Email using Exchange WebDAV] using namespace System; using namespace EASendMail; void SendMail_Exchange_WebDav() { try { // Your Exchange server address SmtpServer ^oServer = gcnew SmtpServer("exch.emailarchitect.net"); // Set Exchange WebDav Protocol - Exchange 2000/2003 oServer->Protocol = ServerProtocol::ExchangeWebDav; // User and password for Exchange WebDav authentication oServer->User = "emailarchitect.net\\test"; oServer->Password = "testpassword"; // If your WebDav service requires SSL connection, please add this line // oServer->ConnectType = SmtpConnectType::ConnectSSLAuto; SmtpMail ^oMail = gcnew SmtpMail("TryIt"); oMail->From = gcnew MailAddress("test@emailarchitect.net"); oMail->To->Add(gcnew MailAddress("to@adminsystem.com")); oMail->Subject = "test email sent from C++/CLI with WebDAV protocol"; oMail->TextBody = "test body"; SmtpClient ^oSmtp = gcnew SmtpClient(); oSmtp->SendMail(oServer, oMail); Console::WriteLine("This email has been submitted to server successfully!"); } catch (Exception ^exp) { Console::WriteLine("Exception: {0}", exp->Message); } }
See Also
User Authentication and SSL Connection
From, ReplyTo, Sender and Return-Path
Process Bounced Email (Non-Delivery Report) and Email Tracking
Online Tutorial
Send Email over SSL/TLS in C#
Send Email using Gmail in C#
Send Email using Yahoo in C#
Send Email using Hotmail/Live in C#
Send Email over SSL/TLS in VB
Send Email using Gmail in VB
Send Email using Yahoo in VB
Send Email using Hotmail/Live in VB
Send Email over SSL/TLS in C++/CLI
Send Email using Gmail in C++/CLI
Send Email using Yahoo in C++/CLI
Send Email using Hotmail/Live in C++/CLI