Skip to main content

An easy way to integrate email into your projects.

Project description

emailHelpers

Test lint and build status
Upload to PyPi status
VirusTotal check status

emailHelpers logoimage

emailHelpers is a wrapper for the smtplib and email packages so it's easy to send emails in your projects.

Here's an example of how to send a Gmail message:

from emailHelpers import Mailer, Email
fromaddr = "example@example.com"
toaddr = "person@example.com"

email = Email(fromaddr)
email.set_to(toaddr)
email.set_subject("Example.")
email.set_body("It's an example!")

mailer = Mailer(fromaddr, "YOUR PASSWORD")
text = email.as_string()
mailer.send_mail(text, toaddr)

It's a lot less complicated compared to the normal way:

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
fromaddr = "YOUR ADDRESS"
toaddr = "ADDRESS YOU WANT TO SEND TO"

email = MIMEMultipart()
email['From'] = fromaddr
email['To'] = toaddr
email['Subject'] = "SUBJECT OF THE MAIL"

body = "YOUR MESSAGE HERE"
email.attach(MIMEText(body, 'plain'))

mailer = smtplib.SMTP('smtp.gmail.com', 587)
mailer.starttls()
mailer.login(fromaddr, "YOUR PASSWORD")
text = email.as_string()
mailer.sendmail(fromaddr, toaddr, text)
mailer.quit()

emailHelpers makes it easier to code your project, reduces the complexity of it, and also makes it easier to read (in my opinion).

Installing emailHelpers

To install emailHelpers, use pip. On a platform that only has Python 3:

python -m pip install emailHelpers

On a platform with Python 2 and Python 3:

python3 -m pip install emailHelpers

You may want to add a --user to the end.

Warning: The "proper" way to send Gmail is with their official API. This is more secure, so if you use Gmail, consider that instead.
Otherwise, as long as you have an STMP server, emailHelpers is just fine with that.

Quick start

  1. Find out what your Google email address and password are.
  2. Let less secure apps access your account.
  3. Install emailHelpers.
  4. You're ready! Use this code for a quickstart:
from emailHelpers import Mailer, Email
fromaddr = "me@gmail.com"
toaddr = "me@gmail.com"

email = Email(fromaddr)
email.set_to(toaddr)
email.set_subject("emailHelpers is working!")
email.set_body("Yahoo! Move on to the next step: https://family-richards.github.io/emailHelpers/#emailhelpers-docs")

mailer = Mailer(fromaddr, "IhAv3aVeRy3eCuRePa33W0Rd")
text = email.as_string()
mailer.send_mail(text, toaddr)

Get started making with emailHelpers now with these docs:

emailHelpers Docs

emailHelpers is a combination of 2 classes to make the sending and managing of emails in python easier. It's made of two classes: Mailer and Email. Once you have added the library as shown in the README, import them as

from emailHelpers import Mailer, Email

The Mailer Class

Declaration for Mailer

To use the Mailer class, you need to pass it your email adress and your password. It defaults to Gmail, so if it's not gmail the server name and port number need to be passed in.
So if:

  • your email adress was fred_loves_pickles@vinegar.helps
  • and your password was "vinegar+cucumbers=pickles"
  • and your server name was smtp.vinegar.helps.everyone
  • and the port was 567

You would declare your Mailer like:

mailer = Mailer("fred_loves_pickles@vinegar.helps", "vinegar+cucumbers=pickles", emailServer="smtp.vinegar.helps.everyone", emailServerPort=567)

If you use Gmail, in order to make this work, make sure to allow less secure apps. For Gmail, you only need to do this to declare a Mailer:

mailer = Mailer("freds-work@gmail.com", "fred-work=nothing")

Sending Email from Mailer

To send a mail from a Mailer, do this:

mailer.send_mail(emailstr, ["freds-friend@anything.com"])

That's the Mailer object. Now on to the slightly more complex Email.

The Email Class

To use the Email class, if your email adress was fred_loves_pickles@vinegar.helps you would declare a Email like this:

Declaration for Email

email = Email("fred_loves_pickles@vinegar.helps")

Subject for Email

To add a subject, run this:

email.set_subject([subject])

Metadata To field for Email

Now, before I say this, I need to explain some things. Do you know how BCC works? It sends it to that person, but the email doesn't say that. To change the part of the email that says who was supposed to recieve it, use this:

email.set_to(["soiwassupposed@torecieve.it"])

Body for Email

To add your body, run:

email.set_body([body])

I recommend using """ to have newlines. Example:

body = """This is the email body.
This is the second line.
Sincerely, your python script"""
email.set_body([body])

as_string() for Email

When you want to send your email object, you should run:

email.as_string()

So you would run:

mailer.send_mail(email.as_string(), ["person@example.com", "anybody@anywhere.com"])

to send your email.

Attaching Files for Email

To attach a file:

email.add_attachment_from_file("intruder.png")

Adding emailHelpers to your Email

Finally, just for the fun of it, you can call addMyselfToEmail to add the library as an attachment to your Email object. It's used like this:

email.add_myself_to_mail()

Internals... probably not needed by you

If you want to attatch a file from a variable, use addAttachment. It takes the attachment and the filename to call it.
Use it like this:

email.add_attachment(loadedattachment, "filename")

To load a file, use loadAttachment. It will return a file that can be passed to addAttachment. Use it like this:

file = email.load_attachment(["complex.stuff"])

The simpler function, if you don't want to disguise your filename, is addAttachmentFromFile. It was covered earlier. To get the MIMEMultipart behind the object, use MimeBehind. Use it like this:

multipart = email.mime_behind()

To access properties of the MIMEMultipart, use getAttr and setAttr. They are used like this:

attribute = email.get_attr("attribute to get")
email.set_attr("attribute to set","new value of attribute")

You're dedicated to read all of this, you know. Good job! I hope that this library makes managing emails easier. See you later! If you have any questions or bugs, feel free to make an issue. Enjoy!

Consider a thanks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

emailHelpers-1.2.1.tar.gz (6.2 kB view hashes)

Uploaded Source

Built Distribution

emailHelpers-1.2.1-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page