ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Communication / Managing emails
  • Properties specific to emailSMTPSession variables
  • Functions that use emailSMTPSession variables
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
The emailSMTPSession type is used to access a messaging server by using the SMTP protocol (Simple Mail Transfer Protocol) in order to send emails. You can define and change the characteristics of the connection using different WLanguage properties.
Remarks:
  • For more details on the declaration of this type of variable and the use of WLanguage properties, see Declaring a variable.
  • In most cases, the SMTP server to use is the SMTP server of Internet provider (and not the one of email account). For example, if you have Internet access via Orange and a Free email account, you must use the SMTP server of Orange (and not the one of Free). To use a different SMTP server, you must use an authenticated SMTP server, that requires a secure connection in most cases.
Example
WINDEVWEBDEV - Server code
// Connection with authentication
// SMTP session with TLS
MySMTPSession is emailSMTPSession
OAuthGoogleCnt is OAuth2Parameters

// OAuth connection parameters
OAuthGoogleCnt.ClientID = "Application ID"
OAuthGoogleCnt.ClientSecret = "Secret application ID"
OAuthGoogleCnt.AuthURL = "https://accounts.google.com/o/oauth2/auth"
OAuthGoogleCnt.TokenURL = "https://accounts.google.com/o/oauth2/token"
OAuthGoogleCnt.Scope = "https://mail.google.com/"
OAuthGoogleCnt.RedirectionURL = "http://localhost:9000"
OAuthGoogleCnt.ResponseType = oauth2ResponseTypeCode

// OAuth authentication
MySMTPSession.ServerAddress = "smtp.gmail.com"
MySMTPSession.Name = "user@gmail.com"
MySMTPSession.Password = "secret"
MySMTPSession.Port = 587
MySMTPSession.Option = emailProtocolSMTPS
MySMTPSession.AuthToken = AuthIdentify(OAuthGoogleCnt)

// If the authentication was successful, log in to email inbox
IF MySMTPSession.AuthToken <> Null THEN
IF EmailStartSession(MySMTPSession) = False THEN
// Error while starting the session
Error("Unable to start the SMTP session.", ErrorInfo(), ...
"In case of timeout, check the parameters of the " + ...
"""Firewall"" on port (" + MySMTPSession.Port + ")")
RETURN
END
// Send a message
MyEmail is Email
...
EmailSendMessage(MySMTPSession, MyEmail)
...
EmailCloseSession(MySMTPSession)
ELSE
// Authentication error
END
Remarks

Properties specific to emailSMTPSession variables

The following properties can be used to handle emailSMTPSession variables:
Property nameType used Effect
AsynchronousBoolean or Integer constant
  • emailAsynchronous (or True) if the emails sent during the session started by EmailStartSMTPSession must be transmitted in asynchronous mode.
  • emailSynchronous (or False) otherwise (default value).
WINDEVLinuxUniversal Windows 10 AppAndroidAndroid Widget iPhone/iPad This property is not available: the send operation is always performed in synchronous mode.
AuthTokenAuthToken variableEmail server access token to be used when if the OAuth 2.0 protocol is used (two-factor authentication). This access token is retrieved by AuthIdentify.
LinuxUniversal Windows 10 AppAndroidAndroid Widget This property is not available.
nomCharacter stringUsername to be used for authenticated SMTP sessions.
OptionInteger constantOptions of SMTP connection. The possible values are:
  • emailOptionDefault (default value):
    Start a non-secure SMTP session. In this case, the standard port is 25.
  • emailProtocolSMTPS:
    Start an SMTP session secured by the TLS protocol. In this mode:
    • the initial connection is established without encryption, then a STARTTLS command is sent to start encryption,
    • the standard port is 587.
  • optionTLS:
    Start an SMTP session secured by the TLS protocol. In this case, the standard port is port 465.
Universal Windows 10 App This property is not supported.
PasswordCharacter stringUser password. This password is given by the service provider or by the network administrator. This password is used to start an authenticated SMTP session.
PortentierIdentifies the port used for SMTP (25 by default).
ServerAddressCharacter stringDNS name or IP address of email server (outgoing protocol). This address is supplied by the service provider or by the network administrator.
Caution: You must use the SMTP server of the provider of Internet connection. This SMTP server may have no link with the SMTP server associated with the email account.

Remark: New constant names (version 28 Update 4):
In version 28 Update 4, theses constants were renamed for better code readability. Constant names correspond as follows:
  • emailOptionSecuredTLS is now emailProtocolSMTPS.
  • optionSSL is now optionTLS.
The old constant names:
  • are no longer recognized by syntax highlighting,
  • no longer appear in the code completion suggestions,
  • can still be used without causing a compilation error or unexpected behavior at runtime.

Functions that use emailSMTPSession variables

EmailCloseSessionCloses an email management session depending on the selected mode (SMTP/POP3, IMAP, MS Exchange or Lotus Notes).
EmailSendMessageSends an email using a given protocol (SMTP, MS Exchange, Lotus Notes, Outlook).
EmailStartSessionStarts an email management session based on the selected management mode (POP3, SMTP, IMAP or MS Exchange).
Related Examples:
WD Mail Complete examples (WINDEV): WD Mail
[ + ] This application is an email client developed in WINDEV. It is based on the Email objects.
This email client is used to retrieve and send emails by using the POP, IMAP and SMTP protocols.
You have the ability to apply filters to the incoming emails.

The application can also be used to manage several email accounts. The writing of an email is based on the HTML edit control.
Minimum version required
  • Version 15
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 12/20/2023

Send a report | Local help