在 smtplib 发送的邮件中显示用户名

Display username in the mail sent from smtplib

我写了一个 python 脚本来使用 smtplib 发送邮件。 一切正常,除了当用户收到邮件时,他看不到我的 google 帐户名,而是获取邮件 ID。有办法解决这个问题吗?

我想它必须在这里做点什么,但我不确定。

msg = MIMEMultipart()

msg['From'] = from_addr
msg['To'] = ','.join(recipients_addr)
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
return msg

第一张图片是用smtplib发送的。没有用户名。

第二个从gmail正常发送。

您需要同时提供电子邮件地址和帐户名才能执行此操作。

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))