import poplib
import imaplib
import email
from getpass import getpass
def login_163_email(mail_server, username, password):
mail = imaplib.IMAP4_SSL(mail_server)
mail.login(username, password)
return mail
def get_emails(mail):
mail.select('inbox')
status, data = mail.search(None, 'ALL')
email_ids = data[0].split()
emails = []
for email_id in email_ids:
status, data = mail.fetch(email_id, '(BODY[HEADER.FIELDS (SUBJECT FROM DATE)])')
raw_email = data[0][1]
email_message = email.message_from_bytes(raw_email)
subject = email_message['Subject']
from_email = email_message['From']
date = email_message['Date']
emails.append((subject, from_email, date))
return emails
def get_email_body(mail, email_id):
status, data = mail.fetch(email_id, '(BODY[TEXT])')
raw_email = data[0][1]
return raw_email.decode()
def close_connection(mail):
mail.logout()
if __name__ == "__main__":
mail_server = "pop.163.com"
username = input("请输入你的163邮箱用户名: ")
password = getpass("请输入你的163邮箱密码: ")
mail = login_163_email(mail_server, username, password)
emails = get_emails(mail)
for subject, from_email, date in emails:
print(f"主题: {subject}")
print(f"发件人: {from_email}")
print(f"时间: {date}")
email_id = email_ids[0] # 只取出最新的邮件
body = get_email_body(mail, email_id)
print(f"邮件内容: {body}")
close_connection(mail)
变量名 | 类 型 | 静态 | 数组 | 备 注 | pythonPath | 整数型 | | | scriptPath | 文本型 | | | result | 整数型 | | | output | 文本型 | | |
// 设置Python和脚本路径 pythonPath := 0 // 从系统环境变量获取,如果没有配置则显示失败 scriptPath := "e:\path\to\your\extract_emails.py" // 脚本文件路径 // 调用Python脚本 httpShellStart ("wscript.exe" )httpShellAdd (scriptPath )output := httpShellEnd (result )如果 (输出 <> "" )? "Python 脚本输出: " + output 否则 ? "Python 脚本执行失败" 结束如果 =清屏
|