邮件 python socket
时间: 2024-06-24 11:01:59 浏览: 170
在Python中,使用socket模块可以创建网络应用程序,包括发送和接收电子邮件。SMTP(Simple Mail Transfer Protocol)是用于发送邮件的标准协议,而POP3(Post Office Protocol version 3)或IMAP4(Internet Message Access Protocol version 4)则用于接收邮件。以下是一个简单的示例,展示了如何使用Python的socket模块以及内置的smtp和poplib模块来发送和接收电子邮件:
发送邮件(SMTP):
```python
import smtplib
from email.mime.text import MIMEText
# 发件人、收件人、邮件主题和正文
sender = 'your_email@example.com'
receiver = 'recipient_email@example.com'
subject = 'Test Email'
body = 'This is a test message using Python sockets.'
# 创建邮件对象
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = sender
msg['To'] = receiver
# 连接SMTP服务器
smtp_server = 'smtp.example.com' # 根据实际邮件服务提供商替换
smtp_port = 587 # 或者465 for SSL/TLS
smtp_conn = smtplib.SMTP(smtp_server, smtp_port)
# 登录邮箱
smtp_conn.starttls() # 如果需要加密
smtp_conn.login(sender, 'your_password') # 用邮箱密码登录
# 发送邮件
smtp_conn.send_message(msg)
smtp_conn.quit()
```
接收邮件(POP3或IMAP4):
```python
import poplib
from email.header import decode_header
# 连接POP3服务器
pop_server = 'pop.example.com' # 根据实际邮件服务提供商替换
pop_port = 995 # 或者110 for plain text mode
pop_conn = poplib.POP3_SSL(pop_server, pop_port)
pop_conn.user('your_username') # 登录用户名
pop_conn.pass_('your_password') # 登录密码
# 检查邮件数量和最近的邮件ID
num_messages, _, _ = pop_conn.stat()
last_email_id = num_messages - 1
# 取出邮件
email_data = pop_conn.retr(last_email_id)
# 解码邮件内容
decoded_msg = email_data
decoded_msg = decode_header(decoded_msg)
# 打印邮件内容
print(f"Subject: {decoded_msg[0]}")
print(f"Body: {decoded_msg}")
# 关闭连接
pop_conn.quit()
```
阅读全文