у меня есть output.txt, содержимое которого я хочу отправить в виде тела электронной почты.
1. я хочу удалить определенные строки из содержимого (не удалять из самого файла)
2. Я хочу иметь возможность конвертировать его в html и создавать определенные размеры строк и, возможно, даже цвет.
у меня есть рабочий скрипт, который отправляет почту. есть некоторые проблемы:
я не могу удалить определенную строку при использовании file.read(). при попытке readlines() типом является список, а тело электронной почты запутывается (соединение не работает со списком с типом байтов)
import smtplib
import email.message
def send_email(subject, msg):
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
ID = 'XXXX'
PASSWORD = 'XXXXXXX'
email_reciever = 'XXXXXX'
server.login(ID, PASSWORD)
message = 'Subject:{} \n\n {}'.format(subject, msg)
server.sendmail(ID, email_reciever, message)
print('Succes')
except Exception as e:
# Print any error messages to stdout
print(e)
finally:
server.quit()
filename = r".\Reports\Report.txt"
with open(filename, "rb") as filename:
text = filename.read()
msg = email.message.Message()
msg.add_header('Content-Type', 'text/plain')
msg.set_payload(text)
subject = "Report"
send_email(subject, msg)
Молодцы, вы мне очень помогли! отредактировано: with open(filename, "r") as filename: text = ''.join(filename.readlines()[3:]) msg = email.message.Message() msg.add_header('Content-Type', 'text/plain') msg.set_payload(text.encode()) какой самый простой способ доставить его в формате html и оформить в теле письма? (путем сопоставления содержимого строки)
Технически проще всего поместить текст между <pre> и </pre> и на этом закончить, но это, очевидно, не дает никаких реальных преимуществ по сравнению с отправкой в виде текста/обычного текста. Мы понятия не имеем, какие HTML-декорации вы хотите, так что это действительно слишком широко.
Просто формат для дизайна для контента... Выберите определенные строки, чтобы выделить их жирным шрифтом или цветом. Какой самый простой метод/пакет?






измените эту строку
with open(filename, "rb") as filename:наwith open(filename, "r") as filename: