在Python中,你可以使用smtplib
和email
库来发送邮件。要正确设置发件人姓名和邮箱地址,你可以使用email.mime.text.MIMEText
或email.mime.multipart.MIMEMultipart
类来构建邮件内容,并在其中设置发件人姓名和邮箱地址。
以下是一个示例代码,展示如何设置发件人姓名和邮箱地址,并发送邮件:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
# 邮件配置
smtp_server = 'smtp.example.com' # SMTP服务器地址
smtp_port = 587 # SMTP服务器端口
sender_email = 'your_email@example.com' # 发件人邮箱
sender_name = 'Your Name' # 发件人姓名
password = 'your_password' # 发件人邮箱密码
receiver_email = 'recipient@example.com' # 收件人邮箱
# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = f'{sender_name} <{sender_email}>' # 设置发件人姓名和邮箱地址
msg['To'] = receiver_email
msg['Subject'] = Header('邮件主题', 'utf-8') # 设置邮件主题
# 邮件正文
body = '这是一封测试邮件。'
msg.attach(MIMEText(body, 'plain', 'utf-8'))
# 发送邮件
try:
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls() # 启用TLS加密
server.login(sender_email, password) # 登录邮箱
server.sendmail(sender_email, receiver_email, msg.as_string()) # 发送邮件
print('邮件发送成功!')
except Exception as e:
print(f'邮件发送失败: {e}')
发件人姓名和邮箱地址:
msg['From']
中,你可以使用f'{sender_name} <{sender_email}>'
的格式来同时设置发件人姓名和邮箱地址。这样收件人看到的发件人信息会是Your Name <your_email@example.com>
。邮件主题:
Header
类来设置邮件主题,确保主题支持中文等非ASCII字符。邮件正文:
MIMEText
来创建邮件正文,并指定编码为utf-8
,以确保邮件内容支持中文。SMTP服务器配置:
TLS加密:
server.starttls()
来启用TLS加密,确保邮件传输的安全性。通过以上步骤,你可以正确设置发件人姓名和邮箱地址,并成功发送邮件。