Python邮件发送:精准设置发件人信息
在使用Python发送邮件时,准确设置发件人姓名和邮箱地址至关重要,这直接影响邮件的显示效果。本文将指导您如何在Python代码中正确设置发件人信息,避免出现冗余信息或奇怪的显示效果。
问题:直接使用姓名作为From字段的值(例如:msg[‘from’] = “xyz abc”),会导致邮件客户端显示包含主机名等额外信息的冗余发件人信息,而非预期的“xyz abc”。
原因: 这是因为未明确指定电子邮件地址,邮件服务器无法正确解析发件人信息。
立即学习“Python免费学习笔记(深入)”;
解决方案: 使用以下格式设置msg[‘From’]:
“Your Name ail@example.com>”
其中,“Your Name” 为您希望显示的发件人姓名,“your_email@example.com” 为您的电子邮件地址。此格式确保邮件客户端正确解析姓名和邮箱地址。
代码示例:
以下代码演示了如何正确设置发件人信息:
import smtplibfrom email.mime.text import MIMETextdef send_email(to=['example@example.com'], f_host='example.example.com', f_port=587, f_user='your_email@example.com', f_passwd='your_password', 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'] = subject msg['From'] = "您的姓名 <your_email@example.com>" # 正确设置发件人信息 msg['To'] = ','.join(to) for t in to: smtpserver.sendmail(f_user, t, msg.as_string()) smtpserver.close() print('邮件发送成功!')cont = """<p>您好!<br></br> 一切顺利吗?<br></br> 这是您需要的 <a href="https://www.php.cn/link/996d38f817b4ba74e4c38fb1286d28ab">链接</a>。</p>"""try: send_email(message=cont)except Exception as e: print(f'邮件发送失败: {e}')
登录后复制
本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。