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
  • Overview
  • Managing emails
  • Two-factor authentication for emails
  • Synchronous/Asynchronous mode (WEBDEV)
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
Overview
WINDEV, WEBDEV and WINDEV Mobile allow you to directly manage the emails from your applications. Sending and receiving emails are simplified by:
Remark: You also have the ability to handle the content of emails without sending them (EmailBuildSource and EmailImportSource).
Managing emails
Several methods can be used to manage emails:
  • Management via the POP3, IMAP and SMTP protocols:
    • the POP3 protocol: this protocol for receiving emails is recognized by all the service providers. This protocol allows you to directly communicate with the server, available at your ISP. This protocol is used to list and read incoming messages.
    • the IMAP protocol: this protocol for receiving emails allows you to leave the emails on the server so that they can be viewed from different messaging clients or webmail. Several characteristics associated with the emails can be managed.
    • the SMTP protocol: this protocol for sending emails is recognized by all the service providers.
  • Management via Lotus Notes, Outlook or MS Exchange:
    • the "Simple Mail API API (also called SMAPI or Simple MAPI)": this management mode of emails is used by most of the Microsoft applications and mainly the MS Exchange client.
    • the Lotus Notes or Outlook messaging software: these programs allow you to send and receive emails.
Remarks:
  • WEBDEV - Browser code WEBDEV also allows you to use the messaging software of the Web user. This method simplifies the sending of emails from a WEBDEV site. Indeed, a single function (EmailOpenMail) is required to open this software on the computer of the Web user and to fill the email information.
  • LinuxJava Only the POP3 and SMTP protocols are available.
  • AndroidAndroid Widget The management via Lotus Notes, Outlook or MS Exchange is not available.
  • Universal Windows 10 App The SSL connections are not supported (for a secure POP3, SMTP or IMAP server).
Two-factor authentication for emails
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:
// Exemple de connexion IMAP avec un compte Gmail
// et une double authentification
OAuthCnxGoogle is OAuth2Parameters
gMaSessionIMAP is emailIMAPSession
 
// Paramètres du serveur IMAP
gMaSessionIMAP.ServerAddress = "imap.gmail.com"
gMaSessionIMAP.Option = optionTLS
gMaSessionIMAP.Port = "993"
 
// Paramètres de connexion OAuth
OAuthCnxGoogle.ClientID = "ID de l'application"
OAuthCnxGoogle.ClientSecret = "ID secret de l’application"
OAuthCnxGoogle.AuthURL = "https://accounts.google.com/o/oauth2/auth"
OAuthCnxGoogle.TokenURL = "https://accounts.google.com/o/oauth2/token"
OAuthCnxGoogle.Scope = "https://mail.google.com/"
OAuthCnxGoogle.RedirectionURL = "http://localhost:9000"
OAuthCnxGoogle.ResponseType = "code"
 
// Identification OAuth
gMaSessionIMAP.AuthToken = AuthIdentify(OAuthCnxGoogle)
// Si l'identification a réussi, il faut se connecter à la boîte email.
IF gMaSessionIMAP.AuthToken <> Null THEN
IF EmailStartSession(gMaSessionIMAP) THEN
// Session ouverte
ELSE
// Erreur d'ouverture de la session.
END
ELSE
// Erreur d'authentification.
END
WEBDEV - Server code
Synchronous/Asynchronous mode (WEBDEV)
By default, Email functions block execution (in Windows and Linux). Which means that no other code can be run during their execution. The program will resume only when the current Email functions have been run.
WEBDEV gives you the ability you to manage the emails in asynchronous mode. This mode allows your sites to send emails without locking the other processes.
To use the asynchronous mode, you must:
  1. Uncheck "Disable the email spooler" in the WEBDEV administrator ("Configuration" tab).
  2. Enable the asynchronous mode when starting the SMTP session (with EmailStartSMTPSession or EmailStartSession).
  3. All outgoing emails will be transmitted to a "spooler". Emails are queued up before being sent.
Executing Email functions does no longer block the rest of the program. EmailStatus is used to determine the status of an email.
Remark: If the WEBDEV administrator is closed, the email spooler is cleared: pending emails are not sent and are removed from the spooler.
If there are pending emails, and the "Disable the email spooler" option is checked, the emails will not be lost: the administrator continues to send them, but the spooler will not accept any new emails.
Caution: The asynchronous mode can only be used when starting a session on an SMTP server (EmailStartSMTPSession for sending emails or EmailStartSession). The asynchronous mode is ignored in all other cases.
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.
WD Mailshot Training (WINDEV): WD Mailshot
[ + ] This example explains how to send a mailshot with WINDEV.

This example is used to type the subject of the message, its content and its attachments.
Then, the user must select the customers to which the message will be sent.
The WLanguge EmailSendMessage() function is used to send the message to each selected customer.
Technical implementation:
An email server compatible with POP3/SMTP must necessarily be accessible from the computer on which the application is run.
Sending emails Unit examples (WEBDEV): Sending emails
[ + ] This training example explains how to send emails with WEBDEV.
Sending an email in HTML format Unit examples (WINDEV): Sending an email in HTML format
[ + ] Using the WLanguage "EmailImportHTML" function.
This function is used to import an HTML file into the email structure. This allows you to easily add images into the emails.
The POP3 Email functions Unit examples (WINDEV): The POP3 Email functions
[ + ] Using the Email functions to manage the POP3 protocol.
This protocol is used to retrieve emails from a server.
WD JavaMail Training (WINDEV): WD JavaMail
[ + ] This example is a Java example used to read and send emails.
WD POP3Proxy Complete examples (WINDEV): WD POP3Proxy
[ + ] This example presents a POP3 proxy. A proxy is a program that connects to a server on behalf of another program.
A proxy can be used to isolate a local network from Internet for security reasons for example.
Only the computer hosting the proxy is linked to Internet and the users access the email server via the proxy.
In this example, the proxy is used to automatically archive the retrieved emails into a HFSQL database.
Several additional features can be used in this application: automatic filtering of spams, statistics about the emails...
WW_CMS Complete examples (WEBDEV): WW_CMS
[ + ] This example is an example of CMS (Content Management System).
This is a site for content management, typically a site for displaying some articles.

This example is divided into 2 parts:
- An AWP part for the part that must be referenced
- A WEBDEV part for the management part

Note:
In order for some features of the example to operate (sending emails for example), the parameters must be modified in order to adapt them to your configuration.
These parameters are stored as constants defined in the code of the project.
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 06/29/2023

Send a report | Local help