欢迎访问宙启技术站
智能推送

Python实现简单的邮件发送程序

发布时间:2023-12-04 22:35:14

Python提供了smtplib库来发送邮件,使用起来非常简单。以下是一个简单的邮件发送程序的实现,并附带使用例子。

1. 导入所需的库

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

2. 配置发件人的邮箱信息

sender = 'your_email@example.com'  # 发件人邮箱地址
sender_name = 'Your Name'  # 发件人的姓名
password = 'your_password'  # 发件人邮箱密码

3. 定义邮件内容和标题

message = MIMEText('邮件内容', 'plain', 'utf-8')
message['From'] = formataddr([sender_name, sender])  # 发件人
message['To'] = formataddr(['收件人姓名', '收件人邮箱地址'])  # 收件人
message['Subject'] = '邮件标题'  # 邮件标题

4. 连接邮件服务器并发送邮件

try:
    server = smtplib.SMTP('smtp.example.com', 25)  # 设置邮件服务器和端口号
    server.login(sender, password)  # 登录发件人邮箱
    server.sendmail(sender, ['收件人邮箱地址'], message.as_string())  # 发送邮件
    server.quit()  # 关闭连接
    print('邮件发送成功')
except Exception as e:
    print('邮件发送失败:', str(e))

下面是一个完整的使用例子,发送一封带有附件的邮件。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr

# 配置发件人的邮箱信息
sender = 'your_email@example.com'
sender_name = 'Your Name'
password = 'your_password'

# 定义邮件内容和标题
message = MIMEMultipart()
message.attach(MIMEText('邮件内容', 'plain', 'utf-8'))
message['From'] = formataddr([sender_name, sender])
message['To'] = formataddr(['收件人姓名', '收件人邮箱地址'])
message['Subject'] = '邮件标题'

# 添加附件
attachment = MIMEText(open('path_to_file', 'rb').read(), 'base64', 'utf-8')
attachment['Content-Type'] = 'application/octet-stream'
attachment['Content-Disposition'] = 'attachment; filename="filename"'
message.attach(attachment)

try:
    server = smtplib.SMTP('smtp.example.com', 25)
    server.login(sender, password)
    server.sendmail(sender, ['收件人邮箱地址'], message.as_string())
    server.quit()
    print('邮件发送成功')
except Exception as e:
    print('邮件发送失败:', str(e))

这是一个简单的邮件发送程序的实现,你可以根据自己的需求进行修改和扩展,如添加多个收件人、发送HTML格式的邮件等。