Как вы, наверное, знаете, некоторые почтовые адреса должны отключать защиту для менее безопасных приложений в 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 ?