插件窝 干货文章 Python邮件发送:如何正确设置发件人姓名和邮箱地址?

Python邮件发送:如何正确设置发件人姓名和邮箱地址?

邮件 发件人 email 邮箱 841    来源:    2025-03-11

在Python中,你可以使用smtplibemail库来发送邮件。要正确设置发件人姓名和邮箱地址,你可以使用email.mime.text.MIMETextemail.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}')

关键点解释:

  1. 发件人姓名和邮箱地址

    • msg['From']中,你可以使用f'{sender_name} <{sender_email}>'的格式来同时设置发件人姓名和邮箱地址。这样收件人看到的发件人信息会是Your Name <your_email@example.com>
  2. 邮件主题

    • 使用Header类来设置邮件主题,确保主题支持中文等非ASCII字符。
  3. 邮件正文

    • 使用MIMEText来创建邮件正文,并指定编码为utf-8,以确保邮件内容支持中文。
  4. SMTP服务器配置

    • 你需要提供SMTP服务器的地址和端口,通常SMTP服务器的端口是587(使用TLS加密)或465(使用SSL加密)。
  5. TLS加密

    • 使用server.starttls()来启用TLS加密,确保邮件传输的安全性。

注意事项:

  • 确保你使用的邮箱服务支持SMTP,并且你已经启用了SMTP服务(有些邮箱服务需要手动开启)。
  • 如果你使用的是Gmail,可能需要生成一个应用专用密码来登录SMTP服务器。

通过以上步骤,你可以正确设置发件人姓名和邮箱地址,并成功发送邮件。