
Python邮件发送:正确设置发件人姓名和邮箱地址
在用Python发送邮件时,如何让收件人看到自定义的发件人姓名和邮箱地址,是很多开发者遇到的问题。本文将详细讲解如何正确设置发件人信息。
直接使用msg['from'] = "xyz abc"这种方式设置发件人信息是不正确的。虽然指定了姓名,但缺少邮箱地址,导致邮件客户端无法正确解析,显示的可能是奇怪的机器名。
正确的做法是将发件人姓名和邮箱地址按照标准格式组合:"你的姓名 "。这符合邮件协议规范,邮件客户端可以正确识别姓名和邮箱。
立即学习“Python免费学习笔记(深入)”;
以下是一个修正后的代码示例,演示了如何正确设置msg['from']字段:
import smtplib
from email.mime.text import MIMEText
def send_email(to=['example@example.com'],
f_host='example.example.com',
f_port=587,
f_user='example@example.com',
f_passwd='example-pass',
subject='默认主题',
message='邮件内容'):
smtpserver = smtplib.SMTP(f_host, f_port)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo()
smtpserver.login(f_user, f_passwd)
msg = MIMEText(message, 'html')
msg['Subject'] = '自定义主题'
msg['From'] = "你的姓名 <你的邮箱地址>" # 这里修改为正确的格式
msg['To'] = ','.join(to)
for t in to:
smtpserver.sendmail(f_user, t, msg.as_string())
smtpserver.close()
print('邮件发送成功!')
cont = """
您好!
最近好吗?
这是您需要的链接。
"""
try:
send_email(message=cont)
except Exception as e:
print(f'邮件发送失败: {e}')
在这个例子中,msg['from'] = "你的姓名 " 将发件人姓名和邮箱地址用尖括号正确地包含起来,确保邮件客户端正确显示发件人信息。 请将 "你的姓名 " 替换成你的实际姓名和邮箱地址。 代码还加入了更完善的错误处理。
通过这种方法,你就能在收到的邮件中看到自定义的发件人姓名和邮箱地址了。










