使用Python smptlib发送邮件时,能否仅显示发件人名称?
如何在Python发送邮件时仅显示发件人名称且保留邮箱关联
通过分离From(显示名称)和Sender两个邮件头字段,即可实现打开邮件后仅显示发件人名称,同时保留邮箱关联让Outlook悬停显示地址簿详情。
原理说明
From字段设置为纯显示名称,用于邮件客户端的展示;Sender字段设置为实际发件人邮箱,用于邮件路由和关联地址簿信息,确保Outlook悬停时能显示完整的联系人详情,且名称不会变灰。
修改后的代码示例
from email.message import EmailMessage from email.header import Header msg = EmailMessage() # 设置仅显示的发件人名称 msg['From'] = str(Header('John Smith', 'utf-8')) # 设置实际发件人邮箱,用于关联地址簿和邮件发送路由 msg['Sender'] = 'john.smith@outlook.com' msg['To'] = "abc@outlook.com" msg['Subject'] = str(Header('title', 'utf-8')) msg.set_content('content message')
效果验证
- 收件箱列表和打开邮件后的发件人区域,都会仅显示
John Smith; - 在Outlook中悬停该名称时,会正常弹出包含邮箱地址的地址簿详情;
- 邮件发送路由不受影响,依然通过指定的
Sender邮箱完成投递。
内容的提问来源于stack exchange,提问作者Alex T
相关产品推荐
相关产品推荐

