Попытка улучшить - код электронной почты Python и HTML [закрыто]Python

Программы на Python
Ответить
Anonymous
 Попытка улучшить - код электронной почты Python и HTML [закрыто]

Сообщение Anonymous »

Мне только что поручили создать код для автоматической отправки графических отчетов по электронной почте. Изображения должны быть встроены в HTML для более удобного чтения, и мне следует отправлять только одно электронное письмо для каждого отчета. Я никогда раньше не прикасался к HTML, но мне удалось придумать код ниже:

Код: Выделить всё

def enviar_email():
body = """



Prezados,

Expectativas IPCA Anual

[img]cid:image0[/img]

Expectativas IPCA Média vs. Meniada

[img]cid:image1[/img]
[img]cid:image2[/img]

[img]cid:image3[/img]
[img]cid:image4[/img]

[img]cid:image5[/img]

Expectativas IPCA Ponderado vs.  Ult 5 dias

[img]cid:image6[/img]
[img]cid:image7[/img]

[img]cid:image8[/img]
[img]cid:image9[/img]

[img]cid:image10[/img]

Expectativas IPCA Anual

[img]cid:image11[/img]
[img]cid:image12[/img]

[img]cid:image13[/img]

Expectativas IPCA Mensal

[img]cid:image14[/img]
[img]cid:image15[/img]

[img]cid:image16[/img]

Expectativas PIB

[img]cid:image17[/img]
[img]cid:image18[/img]

[img]cid:image19[/img]
[img]cid:image20[/img]

Expectativas Taxa Selic

[img]cid:image21[/img]
[img]cid:image22[/img]

[img]cid:image23[/img]
[img]cid:image24[/img]

Expectativas Câmbio

[img]cid:image25[/img]



"""

msg = MIMEMultipart()
msg['Subject'] = 'SUBJECT'
msg['From'] = 'EMAIL'
msg['To'] = 'EMAIL'
password = 'dcau ogjy pdct rqhl'
msg.attach(MIMEText(body, 'html'))

*#iterating through diretories to get the images and assigning them a index value*
index = 0
main_dir_path = 'K:\Temp\Ramiro\Relatório Focus out'
sub_dir_path = glob.glob(main_dir_path + '/*')
for graf_dir_path in sub_dir_path:
graf_path = glob.glob(graf_dir_path + '/*.png')
for graf in graf_path:
with open(graf, 'rb') as fp:
img = MIMEImage(fp.read(), _subtype='png')
img.add_header('Content-ID', f'')
msg.attach(img)
index += 1

*# Login Credentials for sending the mail
smtp = smtplib.SMTP('smtp.gmail.com: 587')
smtp.starttls()
smtp.login(msg['From'], password)
smtp.sendmail(msg['From'], [msg['To']], msg.as_string().encode('utf-8'))
print('Email enviado')

enviar_email()

Код некрасивый, но делает то, что должен. Как ни печально, я пытался найти способы улучшить это. Я хотел уменьшить количество жестко запрограммированных строк в разделе html, но не смог этого сделать. Любые предложения приветствуются и прошу прощения за мой плохой английский :).
Пример вывода электронной почты:
[img]https://i .sstatic.net/3KLtZ3vl.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/792 ... e-and-html
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»