Git Product home page Git Product logo

drymail's Introduction

drymail

Makes sending emails easy and DRY — For Python 3.

PyPI version

Drymail is a minimalist wrapper over Python’s existing smtplib and email libraries, designed to be friendly but unrestrictive. Here’s how you might send a simple email with an attachment using drymail.

from drymail import SMTPMailer, Message

client = SMTPMailer(host='smtp.email.com', user='johndoe', password='password', tls=True)
message = Message(subject='Congrats on the new job!', sender=('John Doe', '[email protected]'),
                  receivers=[('Jane Doe', '[email protected]'), '[email protected]'], text='When is the party? ;)')
message.attach(filename='/path/to/congrats.pdf', mimetype='application/pdf')

client.send(message)

Features

  • Supports creating email with HTML content, plaintext content, or both!
  • Supports mentioning contacts in the “John Doe" <[email protected]> format.
  • Support standard headers like CC, BCC, Reply-To and Authors.
  • Supports injecting custom headers.
  • Supports adding attachments.
  • And most importantly — the library being minimalist, it doesn’t restrict you in any way like some of the most fancier email frameworks do.

Installation

Install drymail by running —

$ pip3 install drymail

Documentation

Documentation is available at https://drymail.readthedocs.io/

Agenda

  • Test suite.
  • Restructure the Message class to handle dynamic prepare.

Contribute

All kinds of contribution are welcome.

License

This project is licensed under the MIT license.

drymail's People

Contributors

s-n-g avatar sanyarajan avatar skulltech avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

drymail's Issues

Injection custom headers

Hi,

When I add headers with:

msg = Message(headers=headers)

They are not added to the message that is created. Am I doing something wrong, or... should I use:

msg.message.add_header('test', 'hi')

The add_header works, but I think it's a bit weird to use it when there is a headers parameter :)

I've tried adding the header with a list of string, and also as tuple, but both do not end up in the final message...

For now I will use the add_headers. Was just wondering if I was doing something strange when using the headers param.

Thanks for the reaction.

Attachment shows before text in thunderbird

Hi

I have just tried drymail and I think it's fantastic!
Thank you for this!

I just encountered an "issue" with email presentation on thunderbird: the attachment (in this case a jpg) is shown before the actual text of the message.

I have checked with gmail and yahoo web interface; everything ok there, but I guess they do their own reformatting...

I have inspected the code of the message received and noticed that the attachment is actually placed before the text.

Would it be the cause?
Would placing the attachment(s) at the end of the message "fix" this?
Or is it just a thunderbird thing and I should contact them instead?

Thanks,
Spiros

EDIT--------------------------------
I can confirm this is the case.
I have edited the code of the message, placed the text part (both plain and html) before the attachment, and used prepared_message for Message
Thunderbird is happy now :)

If only I could do that in python and provide a PR... :(

attach

Hey there nice lib thanks

found a small bug in the example

client = SMTPMailer(host='smtp.gmail.com', user='[email protected]', password='a', tls=True)
message = Message(subject='Congrats :)', sender=('Showcase', '[email protected]'),
                  receivers=['[email protected]'], text='When is the party? ;)')

with open('/tmp/textfile.txt', 'rb') as pdf_file:
    message.attach(filename='/tmp/textfile.txt', data=pdf_file.read(), mimetype='application/pdf')

throws an error about attaching to a None object where self.message is None

need to call

message.prepare()

Before the attach..

Recommend moving this call to the init so that it removes this step from the user.

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.