ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Communication / Managing emails
  • Properties specific to emailSMTPSession variables
  • Functions that use emailSMTPSession variables
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
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
Properties

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).
WINDEVLinuxAndroidAndroid Widget iPhone/iPad This property is not available: sending is always synchronous.
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.
Linux This property is not available.
AndroidAndroid Widget This property is now available.
IgnoreErrorInteger constantSpecifies the ignored errors. Corresponds to a constant or to a combination of constants:
  • emailSessionIgnoreCertificateInvalid Certificate is ignored.
  • emailSessionIgnoreNameCertificateInvalid The site name in the certificate is ignored.
  • emailSessionIgnoreCertificateExpired: Certificate date ignored.
  • emailSessionIgnoreRevocation: The check in the list of revoked certificates is ignored.
Attention: This property can only be used if the email function uses the cross-platform implementation (set with EmailConfigure).. To use this implementation, use the following line of code:
EmailConfigure(emailParameterMode, 1)
Name Character 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 465.
PasswordCharacter string or Secret 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.
New in version 2025
Secret strings: If you use the secret string vault, the type of secret string used for this parameter must be "Ansi or Unicode string".
To learn more about secret strings and how to use the vault, see Secret string vault.
AndroidAndroid Widget Secret strings are not available for this parameter in Android/Android widget applications.
PortIntegerIdentifies 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: It is necessary to use the SMTP server of the Internet connection provider.. This SMTP server may have no link with the SMTP server associated with the email account.

Remark: Modification of 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.
Remarks

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: 11/23/2024

Send a report | Local help