python邮件的发送与收取
时间: 2023-11-04 16:11:44 浏览: 93
python 邮件发送
Python可以通过内置的smtplib和poplib模块发送和接收邮件。下面是一个简单的示例代码,演示如何使用这些模块来发送和接收邮件。
发送邮件:
```python
import smtplib
from email.mime.text import MIMEText
# 邮件内容
msg = MIMEText('这是一封测试邮件', 'plain', 'utf-8')
msg['From'] = '发件人邮箱地址'
msg['To'] = '收件人邮箱地址'
msg['Subject'] = '测试邮件主题'
# 发送邮件
smtp_server = 'SMTP服务器地址'
smtp_port = 25 # SMTP服务器端口号
smtp_username = '发件人邮箱地址'
smtp_password = '发件人邮箱密码'
smtp = smtplib.SMTP(smtp_server, smtp_port)
smtp.login(smtp_username, smtp_password)
smtp.sendmail(msg['From'], msg['To'], msg.as_string())
smtp.quit()
```
接收邮件:
```python
import poplib
from email.parser import Parser
from email.header import decode_header
# POP3服务器地址、端口号、登录名、密码
pop3_server = 'POP3服务器地址'
pop3_port = 110 # POP3服务器端口号
pop3_username = '收件人邮箱地址'
pop3_password = '收件人邮箱密码'
# 连接POP3服务器
pop3 = poplib.POP3(pop3_server, pop3_port)
pop3.user(pop3_username)
pop3.pass_(pop3_password)
# 获取邮箱中的邮件列表
mail_list = pop3.list()
# 获取最新的一封邮件
mail_info = pop3.retr(len(mail_list)[0])
mail_content = b'\r\n'.join(mail_info[1]).decode('utf-8')
mail = Parser().parsestr(mail_content)
# 解析邮件头部
subject = decode_header(mail['Subject'])[0][0].decode('utf-8')
from_addr = decode_header(mail['From'])[0][0].decode('utf-8')
to_addr = decode_header(mail['To'])[0][0].decode('utf-8')
# 输出邮件信息
print('主题:', subject)
print('发件人:', from_addr)
print('收件人:', to_addr)
# 关闭POP3服务器连接
pop3.quit()
```
需要注意的是,发送邮件时需要填写SMTP服务器地址、端口号、发件人邮箱地址、发件人邮箱密码等信息;接收邮件时需要填写POP3服务器地址、端口号、收件人邮箱地址、收件人邮箱密码等信息。另外,在使用poplib模块接收邮件时,邮件内容是以字节流的形式返回的,需要进行解码。
阅读全文