时间:2024-12-03 来源:网络 人气:
Python邮件系统:自动化处理,提升工作效率
Python邮件系统主要利用Python内置的库和第三方库来实现邮件的发送、接收、过滤等功能。常见的Python邮件库包括smtplib、imaplib、email等。
邮件发送是Python邮件系统的基础功能。以下是一个使用smtplib库发送邮件的示例代码:
```python
import smtplib
from email.mime.text import MIMEText
from email.header import Header
邮件发送者信息
sender = 'your_email@example.com'
receiver = 'receiver_email@example.com'
subject = '邮件主题'
body = '邮件正文'
邮件内容设置
msg = MIMEText(body, 'plain', 'utf-8')
msg['From'] = Header(sender, 'utf-8')
msg['To'] = Header(receiver, 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')
SMTP服务器设置
smtp_server = 'smtp.example.com'
smtp_port = 465
smtp_user = 'your_email@example.com'
smtp_password = 'your_password'
发送邮件
try:
smtp_obj = smtplib.SMTP_SSL(smtp_server, smtp_port)
smtp_obj.login(smtp_user, smtp_password)
smtp_obj.sendmail(sender, [receiver], msg.as_string())
print('邮件发送成功')
except smtplib.SMTPException as e:
print('邮件发送失败:', e)
finally:
smtp_obj.quit()
邮件接收功能可以通过imaplib库实现。以下是一个使用imaplib库接收邮件的示例代码:
```python
import imaplib
from email.header import decode_header
邮件接收者信息
username = 'your_email@example.com'
password = 'your_password'
imap_server = 'imap.example.com'
连接到IMAP服务器
mail = imaplib.IMAP4_SSL(imap_server)
mail.login(username, password)
选择收件箱
mail.select('inbox')
搜索邮件
status, messages = mail.search(None, 'ALL')
messages = messages[0].split()
遍历邮件
for num in messages:
status, data = mail.fetch(num, '(RFC822)')
raw_email = data[0][1]
email_message = email.message_from_bytes(raw_email)
解析邮件标题
subject = decode_header(email_message['Subject'])[0][0]
if isinstance(subject, bytes):
subject = subject.decode()
打印邮件标题
print('邮件', subject)
解析邮件正文
body = email_message.get_payload(decode=True).decode()
print('邮件正文:', body)
断开连接
mail.logout()
邮件过滤与排序是Python邮件系统的重要功能。以下是一个使用email库进行邮件过滤和排序的示例代码:
```python
import email
from email.header import decode_header
邮件列表
emails = [
{'subject': 'Python教程', 'date': '2021-01-01', 'from': 'teacher@example.com'},
{'subject': 'Python进阶', 'date': '2021-01-02', 'from': 'teacher@example.com'},
{'subject': 'Python实战', 'date': '2021-01-03', 'from': 'teacher@example.com'}
按日期排序
sorted_emails = sorted(emails, key=lambda x: x['date'])
过滤邮件
filtered_emails = [email for email in sorted_emails if 'Python' in email['subject']]
打印过滤后的邮件列表
for email in filtered_emails:
print('邮件', decode_header(email['subject'])[0][0])
print('邮件日期:', email['date'])
print('邮件发件人:', email['from'])
print('----------------------')
Python邮件系统可以帮助我们实现邮件的自动化处理,提高工作效率。通过本文的介绍,相信你已经掌握了Python邮件系统的基本功能。在实际应用中,可以根据需求进行扩展和优化,以满足更多场景的需求。