Использование Python для отправки электронной почты с телом в качестве шаблона Excel (сохранить все форматирование) - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь создать сценарий, который может отправлять электронное письмо с использованием python с текстом письма из Excel:

enter image description here

После очисткиНа этом веб-сайте я смог создать рабочий сценарий, кроме возможности прикрепить текст письма при сохранении форматирования.

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

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.application import MIMEApplication
from email import encoders
import imghdr
import os.path
import openpyxl

import os


#SUBJECT LINE & EXCEL BODY
filepath = 'C:\\Users\\EXAMPLE\\Desktop\\EXAMPLE'
filename = 'EXAMPLE'
os.chdir(filepath)

wb = openpyxl.load_workbook(filename, data_only=True)
ws = wb.active
sheet = wb['Email']

email_subject = sheet['D24'].value
email_body_ = ws["I5:v18"] #this is the table i want pasted
#email_body= "<html><p>Python Email Test</p></html>" #example of html 
that works

#Email Setup
email_user = "example@gmail.com"
email_send = "example@gmail.com"
email_pass = "example"

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

msg.attach(MIMEText(email_body, 'html', 'utf-8'))

 # Email Server
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(email_user, email_pass)
text = msg.as_string()
server.sendmail(email_user,email_send , msg.as_string())

print ('email sent')
server.quit
...