- POP3 and SMTP protocols
- Authenticated SMTP
- Connection with two-factor authentication
- Required application feature
- Gmail: What to do if a connection to Gmail (SMTP, IMAP, POP3) fails with a certificate error?
In french: EmailOuvreSession
Starts an email management session based on the selected management mode:
- emails managed by the POP3, SMTP or IMAP protocol: EmailStartSession starts the POP3, SMTP or IMAP session.
- To start a session for reading emails (POP3 protocol only), use EmailStartPOP3Session.
- To start a session for sending emails (SMTP protocol only), use EmailStartSMTPSession. This function can also be used to start an authenticated SMTP session.
// Send an email via the POP3 protocol
IF EmailStartSession(USER, PASSWORD, ...
"pop3.gmail.com", "smtp.gmail.com") = True THEN
UserName = USER
UserName = ""
Error("Unable to establish the connection")
Starting an email session (POP3, SMTP, IMAP, Notes or Outlook) Hide the details
<Result> = EmailStartSession(<Session>)
- True if the session was started,
- False otherwise. If an error occurs, the ErrorOccurred variable is set to True.
To get more details on the error, use ErrorInfo with the errMessage constant.
<Session>: emailPOP3Session, emailSMTPSession, emailIMAPSession, emailNotesSession or emailOutlookSession variable
Name of variable containing the description of the email server connection parameters. All the connection properties are specified in the variable properties. For more details, see:
- variable of type emailPOP3Session: to start a session toward a POP3 server in order to read messages.
- variable of type emailIMAPSession: to start a session toward an IMAP server in order to read messages.
- variable of type emailSMTPSession: to start a session toward an SMTP server in order to send messages.
|Remark: This syntax is kept for backward compatibility. We recommend that you use the emailPOP3Session, emailSMTPSession variables or EmailStartPOP3Session and EmailStartSMTPSession.
Starting an email session by using the POP3 and SMTP protocols simultaneously Hide the details
<Result> = EmailStartSession(<Username> , <Password> , <Address of POP3 server> [, <Address of SMTP server> [, <Number of POP3 port> [, <Number of SMTP port> [, <Asynchronous>]]]])
- True if the session was started,
- False otherwise. If an error occurs, the ErrorOccurred variable is set to True. To get more details on the error, use ErrorInfo with the errMessage constant.
<Username>: Character string
Identifies the user. This name is supplied by the service provider or by the network administrator. This name will be used to identify the email session in the different functions for email management.
<Password>: Character string
User password. This password is given by the service provider or by the network administrator.
<Address of POP3 server>: Character string
IP address of email server (incoming protocol). This IP address is supplied by the service provider or by the network administrator. This IP address can have the following format:
- IP address in XXX.XXX.XXX.XXX format (126.96.36.199 for example).
- IP address containing the server name (pop3.freesbee.eu for example). This syntax is recommended.
- IP address returned by NetIPAddress.
<Address of SMTP server>: Optional character string
IP address of email server (outgoing protocol). This IP address is supplied by the service provider or by the network administrator.
This address must be specified only if the POP3 account and the SMTP account do not go through the same computer.
<Number of POP3 port>: Optional integer
Identifies the port used for the POP3 protocol (110 by default).
<Number of SMTP port>: Optional integer
Identifies the port used for the SMTP protocol (25 by default).
<Asynchronous>: Optional constant or boolean
|emailAsynchronous or True||The emails sent during the session started by EmailStartSession must be transmitted in asynchronous mode (see the Notes).|
|emailSynchronous or False|
|The emails sent during the session started by EmailStartSession must be transmitted in synchronous mode (see the Notes).|
POP3 and SMTP protocols
The different parameters passed to EmailStartSession are supplied by the Internet Service Provider or by the network administrator.
An Internet connection is required to manage the emails. Several cases may occur:
- The user uses a direct connection to Internet (cable or ADSL): no specific operation is required.
- The user uses a modem to connect to Internet: NetOpenRemoteAccess establishes the Internet connection.
By default, if only the IP address of POP3 server is specified, this address will be used by the email server that uses SMTP. The IP address of SMTP protocol must be specified only if the POP3 account and the SMTP account do not use the same computer.
Connection with two-factor authentication
More and more providers offer secure email accounts (SMTP/IMAP) with two-factor authentication.
Here is how it works:
- Connect to the email provider using OAuth: this connection provides a token.
- Use the token to connect to IMAP or SMTP email boxes.
Let's see an example of code that can be used:
// Example of IMAP connection with a Gmail account
// and two-factor authentication
OAuthGoogleCnt is OAuth2Parameters
gMyIMAPSession is emailIMAPSession
// IMAP server parameters
gMyIMAPSession.ServerAddress = "imap.gmail.com"
gMyIMAPSession.Option = optionSSL
MyIMAPSession.Port = "993"
// 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 = "code"
// OAuth authentication
gMyIMAPSession.AuthToken = AuthIdentify(OAuthGoogleCnt)
// If the authentication was successful, log in to email inbox.
IF gMyIMAPSession.AuthToken <> Null THEN
IF EmailStartSession(gMyIMAPSession) THEN
// Session started
// Error starting the session.
// Authentication error.
Required application feature
When this function is used, an application feature is declared in the application generation wizard.
Required feature: Family and corporate networks
This feature allows the applications to use incoming and outgoing accesses to the family and corporate networks.
Gmail: What to do if a connection to Gmail (SMTP, IMAP, POP3) fails with a certificate error?
Since August 2017, a new certificate was deployed by Google: Google Internet Authority G3. Unfortunately, the Windows API for checking certificates does not validate this certificate.
Therefore, starting a POP3, IMAP or SMTP session may fail with the error "The certificate string was not issued by a trusted authority".
To validate the certificate, all you have to do is modify the management mode of emails. The WLanguage EmailConfigure
function allows you to change this mode and to no longer use the Windows API that locks this certificate. The following code must be added before starting the session via EmailStartSession
// Enable the multi-platform implementation
Remark: From version 23 Update 1, the call to EmailConfigure
is not required anymore: WLanguage is automatically using the management mode of emails adapted to the session.
This page is also available for…