Python - Как я могу отправить письмо с вложениями в Python, используя gmail? - PullRequest
0 голосов
/ 01 июня 2019

Как вы, наверное, знаете, некоторые почтовые адреса должны отключать защиту для менее безопасных приложений в gmail. Отключение опций работает как брелок с smtlib и вложениями, но без выключения не работает вообще.

Затем я обнаружил способ API с использованием Auth 2.0 в ezgmail модуле, и он может очень легко отправлять электронные письма, но, тем не менее, прикрепленные файлы плохо прикреплены. у них есть некоторые проблемы при кодировании, потому что они плохо отображают документы.

Код, который я получил в итоге:

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)

И вопрос: как правильно прикрепить документы (pdf, word, excel) к ezgmail ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...