Git Product home page Git Product logo

possible-email's Introduction

PossibleEmail

A Ruby Gem to find someone's possible email address using their first name, last name, and domain.

Gem Version Build Status Coverage Status Code Climate

More information in my blog post at PatrickPerey.com

Installation

Install the gem:

$ gem install possible_email

Basic Usage

Command Line Interface

Enter target's first name, last name, and possible domain name into the terminal using search

$ possible_email search first_name last_name domain

Not sure about the domain name? Just add multiple domains at the end

$ possible_email search first_name last_name gmail.com, yahoo.com, live.com

Just want to Confirm a single email address? Use find_profile

$ possible_email find_profile [email protected]

Multiple email address? Same find_profile

$ possible_email find_profile [email protected] [email protected]

Ruby

require 'possible_email'

profiles = PossibleEmail.search('Kevin', 'Rose', 'gmail.com')
profiles #=> "#<PossibleEmail::Response>"
first_profile = profiles.first

first_profile.name #=> 'Kevin Rose'
first_profile.email #=> '[email protected]'
first_profile.location #=> 'San Francisco Bay Area'

Documentation

PossibleEmail

Available methods:

*search(first_name, last_name, domain)

Accepts three arguments first_name, last_name, and domain. PossibleEmail will use these three arguments to generate possible email addresses based on common email address patterns. PossibleEmail would then attempt to verify and return an email profile for each email address.

# Single domain name
PossibleEmail.search('bob', 'jones', 'gmail.com')

# Multiple domain names as Strings
PossibleEmail.search('bob', 'jones', 'gmail.com', 'yahoo.com')

# Multiple domain names as an Array
domains = ['gmail.com', 'yahoo.com', 'live.com']
PossibleEmail.search('bob', 'jones', domains)

*find_profile(emails)

Accepts a list of email address string arguments or an array. Instead of generating email addresses based on name arguments, PossibleEmail would attempt to verify and return an email profile for each email addresses passed into the method.

# Comma-splitted email arguments
PossibleEmail.find_profile('[email protected]', '[email protected]')

# Array of emails
PossibleEmail.find_profile(['[email protected]', '[email protected]'])

Both methods return a PossibleEmail::Response object. PossibleEmail::Response includes the Enumerable module, so all the methods you need to iterate through the profiles are available. The only exception when neither the search or find_profile is when there is only one profile within the response. In this case, the method returns the single Profile.

Profile

Class for the associated data connnected with a specific email address.

Profile attribute list:

  • email - Returns the profile's email address
  • name - Full name
  • first_name - First name
  • last_name - Last name
  • friendly_name - First name or named used to address this person
  • location - Location
  • headline - Short blurb about person
  • success - Type of response returned back from Rapportive API
  • occupations - Array of Occupation objects
  • memberships - Array of social network Membership objects
  • images - Array of Image objects

Occupation

Class for person's jobs.

Occupation attribute list:

  • job_title - Job title
  • company - Company

Membership

Class for Social Network Accounts

Membership attribute list:

  • profile_url - URL to person's website membership
  • profile_id - Website profile ID
  • username - Username
  • site_name - Name of the website membership

Image

Class for images associated with email profile.

Image attribute list:

  • url - Image url
  • service - Where the image is located
  • url_proxied - Rapportive image proxied URL

Notes

  • With great power, comes great responsibly
  • Wrapper around the undocumented Rapportive API.
  • Valid results may be hidden due to API's limitations
  • Send Bitcoin 18fZ6muNmBrtENMZhnAjUw8eEsytmY8mZJ

Contributing

  1. Fork it ( http://github.com/the4dpatrick/possible-email )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

possible-email's People

Contributors

the4dpatrick avatar

Watchers

Dorian Karter avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.