Transform Meta Info

Display NameVerify email address exists [SMTP]
Transform NameEmailAddressToEmailAddress_Verify
Short DescriptionThis transform simply connects to the relevant mail server and checks to see if the email address exists. The results are passed back in the same entity - as a label.
Data SourcePaterva/Host
AuthorRoelof Temmingh (


This transform verifies that an email address really exists.

It works as follows - as a start the transform finds the right MX (mail server) record for the domain. It then connects to port 25 (SMTP) of the host. The transforms starts the normal SMTP conversation - it issues a HELO ( and a MAIL FROM ( SMTP commands. Before testing for the supplied email address it issues a RCPT TO with an email address that does not exist (it tests for thisisreallynothere@domain). If the error message indicates that the address is not there the transform knows that it can test for the supplied email address. If no error is returned during this 'baseline' test the transform returns 'Inconclusive'.

The transform does not return new entities as a result - it returns the same entity but it adds a label to the supplied email address indicating if it could verify it. Note that not all mail servers allow you to verify addresses in this way. Because this transform transacts with the mail server (and this is not considered very passive) this transform contains a disclaimer that explains the situation.

Typical Use Case

URL --> Email addresses ==> Verified email addreses

==> Verify email address exists [SMTP]
--> Related Transform


We can paste in the URL for Linode's contact page. It will be automatically recognised as a URL entity by Maltego. From the URL we can find email addreses. Using the "Verify email address exists" transform we can check if the returned email address is valid.