写一个简单可直接运行的简单电子邮件接收与发送代码
时间: 2024-03-25 16:40:09 浏览: 16
以下是一个简单的Python代码示例,用于接收与发送电子邮件:
```python
import smtplib
import imaplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.mime.base import MIMEBase
from email import encoders
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
IMAP_SERVER = 'imap.gmail.com'
IMAP_PORT = 993
EMAIL_ADDRESS = 'your_email@gmail.com'
EMAIL_PASSWORD = 'your_email_password'
def send_email(to, subject, body, file=None):
msg = MIMEMultipart()
msg['From'] = EMAIL_ADDRESS
msg['To'] = to
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
if file:
with open(file, 'rb') as f:
img_data = f.read()
image = MIMEImage(img_data, name=file)
msg.attach(image)
text = msg.as_string()
conn = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
conn.ehlo()
conn.starttls()
conn.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
conn.sendmail(EMAIL_ADDRESS, to, text)
conn.quit()
print('Email sent successfully.')
def receive_email():
conn = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
conn.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
conn.select('inbox')
result, data = conn.search(None, 'ALL')
ids = data[0]
id_list = ids.split()
for i in id_list:
result, data = conn.fetch(i, '(RFC822)')
raw_email = data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
print('From:', email_message['From'])
print('Subject:', email_message['Subject'])
print('Body:', email_message.get_payload())
```
要发送电子邮件,请使用以下代码:
```python
send_email('recipient@example.com', 'Test email', 'This is a test email.', 'test.jpg')
```
要接收电子邮件,请使用以下代码:
```python
receive_email()
```
请记得将`EMAIL_ADDRESS`和`EMAIL_PASSWORD`更改为您自己的电子邮件地址和密码,以及将`SMTP_SERVER`和`IMAP_SERVER`更改为您的电子邮件提供商的SMTP和IMAP服务器。