Quantcast
Channel: Active questions tagged email - Stack Overflow
Viewing all articles
Browse latest Browse all 29767

Python - How can I send email with attachments in Python using gmail?

$
0
0

As you may well know, some mail adresses need to turn off security for less secure apps in gmail. Turning off options works like a charm with smtlib and attachments, but without turning off it don't works at all.

Then I discovered an API way using Auth 2.0 in ezgmail module, and it can send emails very easy, but however the attachmets are not attached well. they have some problem at encoded, because they don't display well the documents.

The code I ended up with is:

import ezgmail
import os, sys, glob
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

pathFile = '<path>'
folder = os.getcwd()

def compose():
    # email_from = '<my email>'

    subject = 'Hello,'
    body = '''Here I put the text I want.'''

    return [subject, body]

def send_email(email_to):

    subject, body = compose()
    ezgmail.EMAIL_ADDRESS = '<my email>' # email_from

    os.chdir(pathFile)
    list_pdfs = glob.glob('*.pdf')
    file1 = max(list_pdfs, key=os.path.getctime) # select latest file

    # this should do the *encode part*
    attachment = open(file1, 'rb')
    file = MIMEBase('application','octet-stream')
    file.set_payload((attachment).read())
    encoders.encode_base64(file)

    os.chdir(folder)

    ezgmail.send(email_to, subject, body, file.as_string())
    print("Mail sent")

send_email(to@example.com)

And the quesion it's : how to attach properly documents (pdf, word, excel) to ezgmail ?


Viewing all articles
Browse latest Browse all 29767

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>