TurtleTrade/回测/EmailTest.py
2025-04-02 23:06:11 +08:00

88 lines
2.6 KiB
Python
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import imaplib
import smtplib
import email
from email.header import decode_header
from email.mime.text import MIMEText
from imapclient import IMAPClient
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)
# 搜索发件人为指定邮箱的所有邮件
messages = mail.search(None, f'(FROM "{to_email}")')
# 获取邮件ID列表
mail_ids = messages[0].split()
if not mail_ids:
print("No emails found.")
return None
# 获取最新一封邮件的ID
latest_email_id = mail_ids[-1]
# 获取最新一封邮件的数据
status, msg_data = mail.fetch(latest_email_id, "(RFC822)")
for response_part in msg_data:
if isinstance(response_part, tuple):
# 解析邮件
msg = email.message_from_bytes(response_part[1])
# 获取纯文本邮件正文
if msg.get_content_type() == "text/plain":
body = msg.get_payload(decode=True).decode()
print("Body:", body)
return body
# 关闭连接并登出
mail.close()
mail.logout()
return None
if __name__ == "__main__":
# send_email("测试", 'test', "guoyize2209@163.com")
# id_info = {
# 'name': 'myname',
# 'version': '1.0.0',
# 'vendor': 'myclient',
# 'support-email': 'yizeguo1@126.com'
# }
body = get_latest_email_body("guoyize2209@163.com")
if body:
print("Latest email body:", body)
else:
print("No plain text email found.")