PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
This content has been translated automatically. Click here to view the French version.
  • SMTP protocol
  • Session and username
  • Authenticated SMTP
  • Timeout
  • Gmail: What to do if a connection to Gmail (SMTP, IMAP, POP3) fails with a certificate error?
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
Starts a session for sending emails with the SMTP protocol. You will only have the ability to send emails.
Remarks:
  • 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 start a session for receiving and reading emails, use EmailStartPOP3Session.
  • You also have the ability to use an emailSMTPSession variable.
Example
// Envoi d'un email par un serveur SMTP non sécurisé
EmailSetTimeOut(10) // 10 secondes pour le time out
// Attention: il faut utiliser le serveur SMTP du fournisseur d'accès Internet
let sServeursSMTP = "smtp.orange.fr"
IF EmailStartSMTPSession(sNomUser, sMotDePasse, sServeurSMTP) = True THEN
// Procédure permettant d'initialiser la structure email
Initialise_Email()
// Envoie l'email
IF EmailSendMessage(sNomUser) = False THEN
Error()
END
EmailCloseSession(sNomUser)
ELSE
Error("Impossible d'établir la connexion", ErrorInfo(), ...
"En cas de Time Out, assurez-vous des paramètres du " + ...
"""Pare-Feu"" sur le port utilisé (25)")
END
Reports and QueriesWindows
NomUser is string
 
NomUser = "monadresse@gmail.com"
// Envoi d'un email par le protocole SMTP sécurisé
EmailSetTimeOut(10) // 10 secondes pour le time out
// Utilisation d'un serveur SMTP sécurisé avec authentification
// Nécessaire en général pour utiliser un SMTP
// différent de celui du fournisseur d'accès Internet
IF EmailStartSMTPSession(NomUser, "MotDePasse", ...
"smtp.gmail.com", 587, False, emailOptionSecuredTLS) = True THEN
// Procédure permettant d'initialiser la structure email
Initialise_Email()
// Envoie l'email
IF EmailSendMessage(NomUser) = False THEN
Error()
END
EmailCloseSession(NomUser)
ELSE
Error("Impossible d'établir la connexion", ErrorInfo(), ...
"En cas de Time Out, assurez-vous des paramètres du "+ ...
"""Pare-Feu"" sur le port utilisé (587)")
END
Syntax
<Result> = EmailStartSMTPSession(<Username> [, <Password>] , <Address of SMTP server> [, <Number of SMTP port> [, <Asynchronous mode> [, <Option>]]])
<Result>: Boolean
  • True if the session was started,
  • False otherwise. In case of error, the Variable ErrorOccurred is to True.
    To get the details of the error, use ErrorInfo with the errMessage constant.
<Username>: Character string
Identifies the email session in the functions for email management (used by EmailSendMessage to send emails for example).
<Password>: Optional character string
User password. This password is given by the service provider or by the network administrator. This password is used to start an authenticated SMTP session.
<Address of SMTP server>: Character string
DNS name or IP address of email server (outgoing protocol). This IP 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.
<Number of SMTP port>: Optional integer
Identifies the port used for the SMTP protocol (25 by default).
<Asynchronous mode>: Optional constant or boolean
emailAsynchronous (or True)The emails sent during the session started by EmailStartSMTPSession must be transmitted in asynchronous mode.
emailSynchronous (or False)
(default value)
The emails sent during the session started by EmailStartSMTPSession must be transmitted in synchronous mode.

<Option>: Optional Integer constant
Options of SMTP session. The possible values are:
emailOptionDefault
(default value)
Start the SMTP session.
Versions 15 and later
emailOptionSecuredTLS
New in version 15
emailOptionSecuredTLS
emailOptionSecuredTLS
Start the SMTP session secured by the TLS protocol.
Versions 20 and later
OptionSSL
New in version 20
OptionSSL
OptionSSL
Start the SMTP session secured by the SSL protocol. This type of session is used by the Orange, Free and Gmail servers for example.

Remarks

SMTP protocol

  • The different parameters passed to EmailStartSMTPSession 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 modem to connect to Internet: NetOpenRemoteAccess is used to establish the connection to Internet.
    • The user uses a direct connection to Internet (cable or ADSL): no specific operation is required.
  • The SMTP protocol can only be used to send emails. If you try to read email messages without opening a POP3 session (EmailStartPOP3Session function), a WLanguage error will be generated. To start a POP3 session and an SMTP session at the same time, use EmailStartSession.

Session and username

After starting an SMTP session, you can start a POP3 session (EmailStartPOP3Session) with the same username.

Authenticated SMTP

<Password> is used to start an authenticated SMTP session. The supported authentication mechanisms are SMTP Login and Plain.
If the server recognizes one of these two authentication mechanisms and if the authentication fails, the connection fails as well.
If the server does not recognize one of these two authentication mechanisms and if the authentication fails, EmailStartSMTPSession tries to connect without authentication.
Remark: the SMTP authentication cannot be performed by EmailStartSession. To start a POP3 session and an authenticated SMTP session at the same time, you must use both EmailStartPOP3Session and EmailStartSMTPSession.

Timeout

The timeout can be set using EmailSetTimeOut.

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 EmailStartSMTPSession:
// Activation de l'implémentation multi-plateforme
EmailConfigure(emailParameterMode, 1)
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.
Component: wd270com.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment