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
  • Email address to check
  • Server validation: Requirements
  • List of TLDs used during a string syntactic validation
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
EmailCheckAddress (Function)
In french: EmailVérifieAdresse
Checks the validity of an email address.
Example
IF EmailCheckAddress("Moulain@test.fr", emailValidateSyntax) <> emailAddressValid THEN
	Error("Veuillez vérifier l'adresse email fournie") 
END
SWITCH EmailCheckAddress("azerty@orange.com")
	CASE emailAddressValid
		Info("Adresse valide")
	CASE emailAddressIncorrectSyntax
		Info("L'adresse est syntaxiquement fausse.")
	CASE emailAddressRefused
		Info("L'adresse a été refusée par le serveur de mails." + ...
			"ErreurInfo permet d'obtenir la cause du refus.")
	CASE emailAddressError
		Info("Une erreur s'est produite pendant la vérification. " + ...
			"ErreurInfo permet d'obtenir le détail de l'erreur.")
	OTHER CASE
		Info("Cas indéterminé") 
END
Syntax
<Result> = EmailCheckAddress(<Address> [, <Validation level>])
<Result>: Integer constant
Constant used to find out whether the address passed as parameter is valid:
emailAddressErrorAn error occurred during the check. ErrorInfo returns the details of the error.
emailAddressIncorrectSyntaxThe syntax of address is incorrect.
emailAddressRefusedThe address was refused by the email server. ErrorInfo returns the reason for the refusal.
emailAddressValidThe address is valid. This address can be used by EmailSendMessage.

Note: A waiting time may be required depending on the response time of the server being contacted.
<Address>: Character string
Email address to check.
<Validation level>: Optional integer constant
Desired type of validation. You have the ability to use one of the following constants:
emailValidateByServerChecks whether the SMTP email server of the domain to which the address belongs accepts the address in input. The syntax of the email address is automatically checked (emailValidateSyntax constant).
AndroidAndroid Widget iPhone/iPadIOS Widget This constant is not available.
emailValidateSyntax
(Default value)
Checks the syntax of the email address. The TLD (Top Level Domain) is not checked.
emailValidateSyntaxStrictChecks the syntax of the email address as well as the TLD (Top Level Domain) in relation to the list of existing TLDs (see Notes).
Remarks

Email address to check

  • Although email addresses with the format "@[domain name].tld" have a valid syntax according to the RFC822 standard, they are not supported by EmailCheckAddress.
  • If the <Validation level> corresponds to the emailValidateSyntax constant, the email address can contain an empty TLD ("doe@domain." for example).
  • If the <Validation level> corresponds to the emailValidateByServer or emailValidateSyntaxStrict constant, the email address cannot contain any empty TLD ("vince@domain." for example). In this case, <Result> corresponds to emailAddressIncorrectSyntax.

Server validation: Requirements

To use the validation by server (emailValidateByServer constant), the application must be able to contact:
  • a DNS server (by UDP on port 53),
  • the email server of the domain to which the address to check belongs (by TCP, port 25).
Therefore, the firewalls may have to be configured specifically.
Warning In some cases, an Email server may accept a non-existent address (for example, when the server is a relay server that doesn't have access to the list of accounts for the domain for which it collects mail). In this case, <Result> will correspond to the emailAddressValid constant even if the address does not exist. Furthermore, the time for retrieving the sever response can be quite long.
Note The SMTP email server queried is identified by the MX (Mail Exchanger) record of the email address domain.

List of TLDs used during a string syntactic validation

When performing a strict syntactic check (emailValidateSyntaxStrict constant), a list of international and national TLDs is used.
The list of TLDs was updated with the official IANA list (Internet Assigned Numbers Authority) dated May 2021.
Note: Since this update, the available TLDs may have changed.
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.
Business / UI classification: Business Logic
Component: wd300com.dll
Minimum version required
  • Version 14
This page is also available for…
Comments
VERIFICANDO EMAIL

EmailCheckAddress(EDT_Email,emailValidateSyntax)
SWITCH EmailCheckAddress(EDT_Email)
CASE emailAddressValid
// Endereço válido
CASE emailAddressIncorrectSyntax
Info("A sintaxe do endereço está incorreta")
CASE emailAddressRefused
Info("O endereço foi recusado pelo servidor de e-mail."+CR+ErrorInfo())
CASE emailAddressError
Info("Ocorreu um erro durante a checagem "+CR+ErrorInfo())
OTHER CASE
Info("Caso indefinido")
END

// BLOG COM VIDEO E EXEMPLO

http://windevdesenvolvimento.blogspot.com/2017/10/aula-1278-email-4-emailcheckaddress.html

https://www.youtube.com/watch?v=yoYq-WYxXgw


De matos
31 Oct. 2017

Last update: 03/27/2025

Send a report | Local help