帮我用python实现一段适用于所有邮箱的接受、发送邮件的代码并封装
时间: 2024-03-10 09:45:25 浏览: 16
以下是一个使用Python实现的适用于所有邮箱的接收、发送邮件的代码,并对其进行了封装:
```python
import smtplib
import imaplib
import email
class EmailClient:
def __init__(self, email_addr, password):
self.email_addr = email_addr
self.password = password
self.smtp_server = 'smtp.' + email_addr.split('@')[-1]
self.imap_server = 'imap.' + email_addr.split('@')[-1]
def send_email(self, to_addr, subject, body):
message = f'Subject: {subject}\n\n{body}'
try:
with smtplib.SMTP(self.smtp_server, 587) as server:
server.starttls()
server.login(self.email_addr, self.password)
server.sendmail(self.email_addr, to_addr, message)
print("Email sent successfully.")
except Exception as e:
print("Error sending email: ", e)
def receive_email(self):
try:
with imaplib.IMAP4_SSL(self.imap_server) as server:
server.login(self.email_addr, self.password)
server.select('inbox')
_, message_nums = server.search(None, 'ALL')
for num in message_nums[0].split():
_, msg = server.fetch(num, '(RFC822)')
email_message = email.message_from_bytes(msg[0][1])
print("Subject: ", email_message['Subject'])
print("From: ", email_message['From'])
print("Body: ", email_message.get_payload())
except Exception as e:
print("Error receiving email: ", e)
```
此代码中的`EmailClient`类封装了发送邮件和接收邮件的功能,并使用SMTP和IMAP协议来处理不同的邮件服务提供商。在使用此代码之前,请确保您已经配置了正确的邮箱地址和密码,并且您已经允许使用SMTP和IMAP协议来访问您的邮箱。