Я выхожу на конечность здесь , но:
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "hello world"
... "fromaddr" происходит из кода, а не из файла.Итак, «субъект» - это первый ключ, который вы определяете после первого определяемого вами ключа, который приходит из текстового файла.
Предположим, что текстовые строки в файле имеют неправильный терминатор строк, и это добавляется к toaddr
.Тогда с работы, потому что это жестко закодировано.Также To работает, потому что разделитель строки еще не произошел.Это происходит сразу после To.
Здесь вы оставляете два эквивалента терминатора строки, поэтому SMTP прекращает обработку заголовков, и тема теперь считается частью тела сообщения.
Для проверки попробуйте-кодирование "To" addr за один раз.Если это работает, вам нужно обрезать () строки, которые вы получаете из вашего файла.