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).
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.
emailHelpers
.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
```python3
from emailHelpers import Mailer, Email
Mailer
ClassMailer
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:
fred_loves_pickles@vinegar.helps
smtp.vinegar.helps.everyone
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")
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
.
Email
ClassTo use the Email
class, if your email adress was fred_loves_pickles@vinegar.helps
you would declare a Email like this:
Email
email = Email("fred_loves_pickles@vinegar.helps")
Email
To add a subject, run this:
email.set_subject([subject])
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"])
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.
Email
To attach a file:
email.add_attachment_from_file("intruder.png")
emailHelpers
to your Email
Finally, just for the fun of it, you can call add_myself_to_email
to add the library as an attachment to your Email
object. It’s used like this:
email.add_myself_to_email()
If you want to attatch a file from a variable, use add_attachment
. It takes the attachment and the filename to call it.
Use it like this:
email.add_attachment(loaded_attachment, "filename")
To load a file, use load_attachment
. It will return a file that can be passed to add_attachment
.
Use it like this:
file = email.load_attachment(["complex.stuff"])
The simpler function, if you don’t want to disguise your filename, is add_attachment_from_file. It was covered earlier.
To get the MIMEMultipart
behind the object, use mime_behind
.
Use it like this:
multipart = email.mime_behind()
To access properties of the MIMEMultipart
, use get_attr
and set_attr
.
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!