Python3: текстовый файл для отправки по электронной почте

у меня есть 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, "rb") as filename: на with open(filename, "r") as filename:

Nick 29.03.2019 17:38

Молодцы, вы мне очень помогли! отредактировано: 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 и оформить в теле письма? (путем сопоставления содержимого строки)

Amit Neuhaus 29.03.2019 17:52

Технически проще всего поместить текст между <pre> и </pre> и на этом закончить, но это, очевидно, не дает никаких реальных преимуществ по сравнению с отправкой в ​​виде текста/обычного текста. Мы понятия не имеем, какие HTML-декорации вы хотите, так что это действительно слишком широко.

tripleee 29.03.2019 18:44

Просто формат для дизайна для контента... Выберите определенные строки, чтобы выделить их жирным шрифтом или цветом. Какой самый простой метод/пакет?

Amit Neuhaus 29.03.2019 21:24
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
4
3 019
0

Другие вопросы по теме