Отправить HTML E-Mail с веб-страницей HTML, встроенной в HTML Python [закрыто]Html

Программисты Html
Ответить Пред. темаСлед. тема
Anonymous
 Отправить HTML E-Mail с веб-страницей HTML, встроенной в HTML Python [закрыто]

Сообщение Anonymous »

Я хотел бы отправить электронное письмо в HTML. В HTML я хочу также встроить еще один объект HTML, полученный в локальной папке.

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

email_content = jinja_template.render(msg)
msg.attach(MIMEText(email_content, "html"))

body = f""" Sales Report  {df.to_html()}
[img]cid:image1[/img]
`enter code here`
{% include 'path/to/template.html' %}
"""
msg.attach(MIMEText(body,'html'))
< /code>
Пожалуйста, дайте несколько предложений. < /p>
Спасибо < /p>

Да, Не было ясно
Я прикрепляю весь код, который он работает, пока вы не внедряете файл HTML. < /p>
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

import pandas as pd
import sqlalchemy
import smtplib

from jinja2 import Template

# Read the Jinja2 email template
with open("C:/tmp/plotly_graph.html", "r") as file:
template_str = file.read()

jinja_template = Template(template_str)

import glob
folder_dir="C:\\Users\\n.restaino\\PycharmProjects\\pythonProject\\.venv\\"
image_path="C:\\Users\\n.restaino\\PycharmProjects\\pythonProject\\.venv\\image1.png"
if __name__ == "__main__":
# Connection details
# Connection details
user = 'a'
pw = 'a'
host = '0.0.0.10'
port = '1521'
db = 'a.a.com'

engine = sqlalchemy.create_engine('oracle+cx_oracle://' + user + ':' + pw + '@' + host + ':' + port + '/?service_name=' + db)
my_query="""SELECT sum(FTR_VALORE) val, AN_RAGSOC1 cli FROM fatrig JOIN ancf ON cf_cod=ftr_clfo
WHERE ftr_ese='2025'
GROUP BY AN_RAGSOC1
ORDER BY sum(ftr_valore) desc
FETCH FIRST 20 ROWS ONLY"""
df = pd.read_sql(my_query, engine)
ax = df.plot.bar(x='cli', y='val', rot=60, figsize=(30, 20))

fig = ax.get_figure()

fig.savefig(image_path)

email_user = 'a.b@gmail.com'
password_user = '1111'
email_send = 'b.c@gmail.com'
subject = 'Python'

msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
msg['Subject'] = subject

email_content = jinja_template.render(msg)
msg.attach(MIMEText(email_content, "html"))

body = """ Sales Report  {df.to_html()}
[img]cid:image1[/img]
{% include "C:/tmp/plotly_graph.html" %}
"""
msg.attach(MIMEText(body,'html'))

msgRoot = MIMEMultipart('mixed')
msgAlternative = MIMEMultipart('mixed')
i=1

# iterate over files in
# that directory
for images in glob.iglob(f'{folder_dir}/*'):

# check if the image ends with png
if (images.endswith(".png")):
attachment =open(images,'rb')
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)

part.add_header('Content-Disposition',"attachment; filename= "+images)
part.add_header('Content-ID', 'image1' )
i = i + 1
msg.attach(part)
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+images)
msg.attach(part)

text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(email_user, password_user)

server.sendmail(email_user,email_send,text)
server.quit()
Дайте мне знать, если я могу добавить другие данные
Заранее

Подробнее здесь: https://stackoverflow.com/questions/794 ... tml-python
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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