TurtleTrade/EmailTest.py

74 lines
2.4 KiB
Python
Raw Normal View History

2025-04-15 23:06:41 +08:00
import imaplib
import smtplib
import email
from email.header import decode_header
from email.mime.text import MIMEText
from imapclient import IMAPClient
from email.parser import Parser
2025-04-21 21:57:41 +08:00
import base64
2025-04-15 23:06:41 +08:00
def send_email(subject, body, to_email):
# 这个函数名为send_email它接受三个参数
# subject邮件主题、body邮件内容和to_email收件人的电子邮件地址
from_email = 'yizeguo1@126.com'
mail_pass = 'CHRIZKWQSRWYLBOL'# 126授权码
# mail_pass = 'pwvzuqbiysqshgha'# qq授权码
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_email
msg['To'] = to_email
server = smtplib.SMTP('smtp.126.com', 25)
# server = smtplib.SMTP('smtp.qq.com', 465)
server.starttls()
server.login(from_email, mail_pass)
server.sendmail(from_email, to_email, msg.as_string())
server.quit()
def get_latest_email_body(to_email):
# 连接到126邮箱的IMAP服务器
mail = IMAPClient("imap.126.com")
from_email = 'yizeguo1@126.com'
mail_pass = 'CHRIZKWQSRWYLBOL'# 126授权码
mail.login(from_email, mail_pass)
mail.id_({"name": "IMAPClient", "version": "2.1.0"})
# mail.list_folders()
print(mail.list_folders())
# 选择收件箱
# messages = mail.select_folder(folder="inbox", readonly=True)
mail.select_folder('INBOX')
# 搜索发件人为指定邮箱的所有邮件
encoded_email = to_email.encode('utf-8')
# 构建搜索条件HEADER FROM "<发件人邮箱>"
search_criteria = f'FROM "{encoded_email.decode("utf-8")}"'
# 执行搜索操作
messages = mail.search(search_criteria)
# print(f"Search Status: {status}")
print(f"Matching Emails: {messages}")
2025-04-21 21:57:41 +08:00
for msgid, data in mail.fetch(messages, ['ENVELOPE']).items():
envelope = data[b'ENVELOPE']
print('ID #%d: "%s" received %s' % (msgid, envelope.subject.decode(), envelope.date))
2025-04-15 23:06:41 +08:00
if __name__ == "__main__":
# send_email("测试", 'test', "guoyize2209@163.com")
# id_info = {
# 'name': 'myname',
# 'version': '1.0.0',
# 'vendor': 'myclient',
# 'support-email': 'yizeguo1@126.com'
# }
2025-04-21 21:57:41 +08:00
get_latest_email_body("guoyize2209@163.com")
2025-04-15 23:06:41 +08:00
# if body:
# print("Latest email body:", body)
# else:
2025-04-21 21:57:41 +08:00
# print("No plain text email found.")