#python #email #gmail #smtplib
#python #Адрес электронной почты #gmail #smtplib
Вопрос:
Я написал скрипт на python для отправки почты с использованием smtplib. Все работает нормально, за исключением того, что, когда пользователь получает почту, он не может видеть имя моей учетной записи Google, вместо этого он получает почтовый идентификатор. есть ли способ сделать это правильно?
Я предполагаю, что это должно что-то сделать здесь, но я не уверен.
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = ','.join(recipients_addr)
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
return msg
Первое изображение — это изображение, отправленное с помощью smtplib. Имя пользователя отсутствует.
Второе обычно отправляется из gmail.
Ответ №1:
Для этого вам необходимо указать как адрес электронной почты, так и имя учетной записи.
Для форматирования данных можно использовать функцию email.utils.formataddr:
>>> from email import utils
>>> utils.formataddr(('Jane Smith', 'jsmith@example.com'))
'Jane Smith <jsmith@example.com>'
В коде вопроса, вы бы сделали что-то вроде
from_addr = 'praneeth.vasarla@example.com'
from name = 'Praneeth Vasarla'
msg['from'] = formataddr((from_name, from_addr))
Комментарии:
1. @snakecharmerb Я получил эту ошибку
NameError: name 'formataddr' is not defined
. Какой пакет я должен установить?2. Я использовал
from email.utils import formataddr
, и это сработало хорошо. Большое спасибо.