Skip to main content

Mailpapa

pip install mailpapa
import mailpapa

res = mailpapa.search(company='safaricom', domain="safaricom.co.ke")

emails = res.emails

for email in emails:
    print(email.address)
    print(email.name)
    print(email.position)

# unfortunately linkedin hates crawling, this causes mailpapa to return an empty response.emails

#To make it easier and avoid Exceptions use

if res.ok:
  for email in res.emails:
    print(email.address)
    print(email.name)
    print(email.position)

Mailpapa accepts diiferent email patterns. By defaults it uses firstname.lastname@domain

first_last = mailpapa.ACCEPTED_PATTERNS.FIRST_LAST
res = mailpapa.search(company='safaricom', domain="safaricom.co.ke", pattern=first_last)

The following patterns are supported

import mailpapa

mailpapa.ACCEPTED_PATTERNS.FIRSTLAST # johndoe@contosdo.com
mailpapa.ACCEPTED_PATTERNS.LASTFIRST # doejohn@contosdo.com
mailpapa.ACCEPTED_PATTERNS.LAST # doe@contosdo.com
mailpapa.ACCEPTED_PATTERNS.FIRST # john@contosdo.com
mailpapa.ACCEPTED_PATTERNS.FIRST_LAST # john_doe@contosdo.com
mailpapa.ACCEPTED_PATTERNS.LAST_FIRST # doe_john@contosdo.com
mailpapa.ACCEPTED_PATTERNS.FIRSTDOTLAST # john.doe@contosdo.com
mailpapa.ACCEPTED_PATTERNS.LASTDOTFIRST # doe.john@contosdo.com
mailpapa.ACCEPTED_PATTERNS.FLAST # jdoe@contosdo.com
mailpapa.ACCEPTED_PATTERNS.LFIRST # djohn@contosdo.com
mailpapa.ACCEPTED_PATTERNS.FIRSTL #johnd@contosdo.com
mailpapa.ACCEPTED_PATTERNS.LASTF # doej@contosdo.com

Mailpapa also allows you to search multiple role. Defaults to ceo

roles = ["sales", "ceo", "finance"]

mailpapa.search(company='safaricom', domain="safaricom.co.ke", positions=roles)

# OR

mailpapa.search(company='safaricom', domain="safaricom.co.ke", positions="sales")

CLI

mailpapa -h

usage: mailpapa [-h] [-p PATTERN] [-r ROLE] [-j file] company domain

Search for Emails in the Wild

positional arguments:
  company               Company name
  domain                Company domain

optional arguments:
  -h, --help            show this help message and exit
  -p PATTERN, --pattern PATTERN
                        Email Pattern
  -r ROLE, --role ROLE  Employee Positions

Save Options:
  -j file, --json file  Save emails in a JSON file in the given location.
>>> mailpapa safaricom safaricom.co.ke -r sales

----------------------  ------------------------------------
Hidden Name           hidden.name@safaricom.co.ke
Hidden Name           hidden.name@safaricom.co.ke
Hidden Name           hidden.name@safaricom.co.ke
Hidden Name           hidden.name@safaricom.co.ke
Hidden Name           hidden.name@safaricom.co.ke
Hidden Name           hidden.name@safaricom.co.ke
Hidden Name           hidden.name@safaricom.co.ke
----------------------  ------------------------------------

How about we send email

config={
  "password": os.environ.get("SMTP_PASS", None),
  "host": os.environ.get("SMTP_HOST", None),
  "port": int(os.environ.get("SMTP_PORT", None))
}

# Params
email.sendmail(sender: str = None, subject: str = None, body: str = None, html: bool = False, config: dict =None)

email = res.emails[0]
email.sendmail(
    "myemail@contosdo.com", #sender
    subject="Canton Fair",
    body="Did you get the ticket to canton?",
    config=config
    )

https://support.google.com/accounts/answer/6010255

https://myaccount.google.com/lesssecureapps

Metadata

Release files for mailpapa 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mailpapa 0.1.5
File Size Uploaded
mailpapa-0.1.5.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mailpapa 0.1.5
File Interpreter ABI Platform
mailpapa-0.1.5-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 16.7 kB

Release files / mailpapa-0.1.5.tar.gz

Download URL mailpapa-0.1.5.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
eebcc39e9e8372406723fd77f895dfc5ae7482bd289abb7d9ebbf75e9d10b1fd
BLAKE2b-256 checksum
How to use checksums
c09c88df6d333962af8f4847e43f8ff923451d8001f7ee5db41ead56d21a76cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5

Release files / mailpapa-0.1.5-py2.py3-none-any.whl

Download URL mailpapa-0.1.5-py2.py3-none-any.whl
Size 9.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
adab743b34b13ea9e708f5eb0991681ec45bc9afa99f3fdd740f75ff0728fc65
BLAKE2b-256 checksum
How to use checksums
6f09ca3b34a4491f9bc56b101bf39b9b0b03b189992bb48fab7c0a53f1dc212f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page