Email recon made fast and easy, with a framework to build on

View project on GitHub

Build Status Code Health Codacy Badge Coverage Status

alt text

# SimplyEmail

What is the simple email recon tool? This tool was based off the work of theHarvester and kind of a port of the functionality. This was just an expansion of what was used to build theHarvester and will incorporate his work but allow users to easily build Modules for the Framework. Which I felt was desperately needed after building my first module for theHarvester.


  • @laramies - Developer of theHarvester tool
  • @CptJesus - Helped dev framework

Work Conducted by:

Scrape EVERYTHING - Simply

Current Platforms Supported:

  • Kali Linux 2.0

A few small benefits:

  • Easy for you to write modules (All you need is 1 required Class option and you’re up and running)
  • Use the built in Parsers for rawest results
  • Multiprocessing Queue for modules and Result Queue for easy handling of Email data
  • Simple integration of theHarvester Modules and new ones to come
  • Also the ability to change major settings fast without diving into the code

API Based Searches:

  • When API based searches become available, no need to add them to the Command line
  • API keys will be auto pulled from the SimpleEmail.ini, this will activate the module for use

Get Started in Kali

Install SimplyEmail in one line:

root@kali:~# curl -s | bash
root@kali:~# cd SimplyEmail
(SE) root@kali:~/SimplyEmail# ./

DONT trust a one line command no issue:

git clone --branch dev
cd SimplyEmail
cd ..
cd SimplyEmail
(SE) root@kali:~/SimplyEmail# ./

NOTE: SimplyEmail uses autoenv to activate the Python Virtualenv.. It may prompt you the first time during a CD into the SimplyEmail dir.

Get Started on Mac OSX

Install brew:

$ sudo easy_install pip
$ sudo brew install libmagic
$ pip install python-magic
$ brew install autoenv
$ echo "source $(brew --prefix autoenv)/" >> ~/.bash_profile
$ git clone --branch master
$ ./setup/

Standard Help

 Current Version: v1.4.2 | Website:
 Twitter: @real_slacker007 |  Twitter: @Killswitch_gui
   ______  ________                       __ __
 /      \/        |                     /  /  |
/$$$$$$  $$$$$$$$/ _____  ____   ______ $$/$$ |
$$ \__$$/$$ |__   /     \/    \ /      \/  $$ |
$$      \$$    |  $$$$$$ $$$$  |$$$$$$  $$ $$ |
 $$$$$$  $$$$$/   $$ | $$ | $$ |/    $$ $$ $$ |
/  \__$$ $$ |_____$$ | $$ | $$ /$$$$$$$ $$ $$ |
$$    $$/$$       $$ | $$ | $$ $$    $$ $$ $$ |
 $$$$$$/ $$$$$$$$/$$/  $$/  $$/ $$$$$$$/$$/$$/

usage: [-all] [-e] [-l] [-t html / flickr / google]
                      [-s] [-n] [-verify] [-v] [--json json-emails.txt]

Email enumeration is a important phase of so many operation that a pen-tester
or Red Teamer goes through. There are tons of applications that do this but I
wanted a simple yet effective way to get what Recon-Ng gets and theHarvester
gets. (You may want to run -h)

optional arguments:
  -all                  Use all non API methods to obtain Emails
  -e        Set required email addr user, ex
  -l                    List the current Modules Loaded
  -t html / flickr / google
                        Test individual module (For Linting)
  -s                    Set this to enable 'No-Scope' of the email parsing
  -n                    Set this to enable Name Generation
  -verify               Set this to enable SMTP server email verify
  -v                    Set this switch for verbose output of modules
  --json json-emails.txt
                        Set this switch for json output to specfic file

Run SimplyEmail

Let’s say your target is

./ -all -e

or in verbose
./ -all -v -e

or in verbose and no "Scope"
./ -all -v -e -s

or with email verification
./ -all -v -verify -e 

or with email verification & Name Creation
./ -all -v -verify -n -e 

or json automation
./ -all -e --json cs-json.txt

This will run ALL modules that are have API Key placed in the SimpleEmail.ini file and will run all non-API based modules.

List Modules SimpleEmail

Current modules:

1)	Modules/    
2)	Modules/ **(Deprecated)**   
3)	Modules/ **(Deprecated)**
4)	Modules/  
5)	Modules/
6)	Modules/
7)	Modules/
8)	Modules/
9)	Modules/
10)	Modules/
11)	Modules/ 
12)	Modules/
13)	Modules/
14)	Modules/
15)	Modules/
16)	Modules/
17)	Modules/
18)	Modules/
19)	Modules/
20)	Modules/ 
21)	Modules/
22)	Modules/   
23)	Modules/
24)	Modules/
25)	Modules/    
26)	Modules/
27)	Modules/    
28)	Modules/ 

API Modules and Searches

API based searches can be painful and hard to configure. The main aspect of SimplyEmail is to easily integrate these aspects, while not compromising the ease of using this tool. Using the configuration file, you can simply add your corresponding API key and get up and running. Modules are automatically identified as API based searches, checks if the corresponding keys are present and if the keys are present it will run the module.

Canario is a service that allows you to search for potentially leaked data that has been exposed on the Internet. Passwords, e-mail addresses, hostnames, and other data have been indexed to allow for easy searching.

Simply Register for a key here: [] ( or Place the key in the SimplyEmail.ini at [APIKeys] section, the module will now initiate when the –all flag is user of the -t.

Name Generation

Some times SimplyEmail will only find the standard email addresses or just a few emails. In this case email creation may be your saving grace. Using name generation can allow you not only scrape names from diffrent sites but allow you to auto detect the format to some accuracy.

LinkedIn Name Generation

Using Bing and work from PhishBait I was able to implement LinkedIn name lookups from the company name. Name Generation

Connect6 is also a great source for names, and also a bit flaky to find the source. Using a AutoUrl function I built I do attempt to find the correct URL for you. If not I provide you with a few more to pick from.

 Current Version: v1.1 | Website:
 Twitter: @real_slacker007 |  Twitter: @Killswitch_gui
 [*] Now Starting Connect6 Scrape:
 [*] SimplyEmail has attempted to find correct URL for Connect6:
     URL detected:,%20LLC/c 
 [>] Is this URL correct?: n
    Potential URL:,%20LLC/c 
    Potential URL: 
    Potential URL: 
    Potential URL: 
    Potential URL: 
 [!] GoogleDork This: ""
 [-] Commands Supported: (B) ack - (R) etry
 [>] Please Provid a URL: b

Verifying Emails via target SMTP server:

More often than not you will have at least a few invalid emails gathered from recon. SimplyEmail now supports the ability to verify and check if the email is valid.

  • Looks up MX records
  • Sorts based on priority
  • Checks if SMTP server will respond other than 250
  • If the server is suitable, checks for 250 codes
  • Outputs a (.txt) file with verified emails.
 Curent Version: v1.0 | Website:
 Twitter: @real_slacker007 |  Twitter: @Killswitch_gui
 [*] Email reconnaissance has been completed:

    Email verification will allow you to use common methods
    to attempt to enumerate if the email is valid.
    This grabs the MX records, sorts and attempts to check
    if the SMTP server sends a code other than 250 for known bad addresses

 [>] Would you like to verify email(s)?: y
 [*] Attempting to resolve MX records!
 [*] MX Host:
 [*] Checking for valid email:
 [!] Email seems valid:

Understanding Reporting Options:

One of the most frustrating aspects of Pen-testing is the tools’ ability to report the findings and make those easily readable. This may be for the data provided to a customer or just the ability to report on source of the data.

So I’m making it my goal for my tools to take that work off your back and make it as simple as possible! Let’s cover the two different reports generated.

Text Output:

With this option results are generated and appended to a running text file called Email_List.txt. this makes it easy to find past searches or export to tool of choice. Example:

  Email Recon: 11/11/2015 05:13:32
  Email Recon: 11/11/2015 05:15:42

JSON Output

using the --json test.txt flag will alow you to output standard JSON text file for automation needs. This can be currently used with the email scraping portion only, maybe name generation and email verification to come. These helpers will be soon in the SQL DB and API for more streamline automation. Example output:

    "current_version": "v1.4.1", 
    "data_of_collection": "26/06/2016", 
    "domain_of_collection": "---SNIP---", 
    "email_collection_count": 220, 
    "emails": [
            "collection_data": "26/06/2016", 
            "collection_time": "18:47:42", 
            "email": "---SNIP---", 
            "module_name": "Searching PGP"
            "collection_data": "26/06/2016", 
            "collection_time": "18:51:46", 
            "email": "---SNIP---", 
            "module_name": "Exalead PDF Search for Emails"
    "time_of_collection": "18:53:04", 
    "tool_of_collection": "SimplyEmail"

HTML Output:

As I mentioned before a powerful function that I wanted to integrate was the ability to produce a visually appealing and rich report for the user and potentially something that could be part of data provided to a client. Please let me know with suggestions!

Email Source:

Alt text

Email Section:

  • Html report now shows Alerts for Canary Search Results! Alt text


Modules Under Dev:
( ) StartPage Search (can help with captcha issues)
( ) Searching SEC Data
( ) PwnBin Search 
( ) Past Data Dumps
( ) psbdmp API Based and non Alert

Framework Under Dev:
( ) New Parsers to clean results
( ) Fix import errors with Glob
( ) Add in "[@]" to search Regex and engines
( ) Add Threading/Multi to GitHub Search
( ) Add Source of collection to HTML Output

Current Issues:
( ) PDF miner Text Extraction Error
( ) Verify Emails function and only one name list raises errors