Python mail inserts space every 171 characters

I can replicate this in a way but my line breaks come every 999 characters. RFC 821 says maximum length of a line is 1000 characters including the line break so that's probably why.

This post gives a different way to send a html email in python, and i believe the mime type "multipart/alternative" is the correct way. Sending HTML email using Python


I'm the developer of yagmail, a package that tries to make it easy to send emails.

You can use the following code:

import yagmail
yag = yagmail.SMTP('[email protected]', 'mypassword')

for i in range(20):
    message += " " * 50
    message += "<br/>"

yag.send(contents = message)

Note that by default it will send a HTML message, and that it also adds automatically the alternative part for non HTML browsers.

Also, note that omitting the subject will leave an empty subject, and without a to argument it will send it to self.

Furthermore, note that if you set yagmail up correctly, you can just login using yag.SMTP(), without having to have username & password in the script (while still being secure). Omitting the password will prompt a getpass.

Adding an attachment is as simple as pointing to a local file, e.g.:

yag.send(contents = [message, 'previously a lot of whitespace', '/local/path/file.zip']

Awesome isn't it? Thanks for the allowing me to show a nice use case for yagmail :)

If you have any feature requests, issues or ideas please let me know at github.