可以使用Python中的imaplib库和email库来实现监视指定邮件名的邮箱并提示收到新邮件的功能。
一、连接邮箱并登录。
import imaplib
import email
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('your_email', 'your_password')
mail.select('inbox')
二、使用搜索条件来搜索指定邮件名的邮件。
search_criteria = f'(FROM "{
sender}" SUBJECT "{
subject}")'
status, email_ids = mail.search(None, search_criteria)
其中,sender为发件人地址,subject为邮件主题。搜索结果将返回一个字符串,包含符合条件的邮件的ID。
要监视所有以"New Message"开头的邮件,可以使用以下搜索条件:
search_criteria = f'(FROM "{
sender}" SUBJECT "New Message*")'
如果要匹配包含"New Message"的邮件,可以使用以下搜索条件:
search_criteria = f'(FROM "{
sender}" SUBJECT "%New Message%")'
三、可以根据邮件ID获取邮件内容。
id_list = email_ids[0].split()
if id_list:
latest_email_id = id_list[-1]
status, email_data = mail.fetch(latest_email_id, "(RFC822)")
raw_email = email_data[0][1]
email_message = email.message_from_bytes(raw_email)
四、可以根据需要对邮件内容进行处理和提示。
可以使用Python的标准库tkinter弹出一个提示框显示邮件内容。
import tkinter as tk
root = tk.Tk()
root.withdraw()
msg = f"New email from {
sender} with subject '{
subject}'\n\n{
email_message.get_payload()}"
tk.messagebox.showinfo(title="New Email", message=msg)
五、完整代码如下
import imaplib
import email
import tkinter as tk
# 邮箱登录信息
email_address = 'your_email'
email_password = 'your_password'
# 搜索条件
sender = '[email protected]'
subject = 'New Message'
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(email_address, email_password)
mail.select('inbox')
# 搜索符合条件的邮件
search_criteria = f'(FROM "{
sender}" SUBJECT "{
subject}")'
status, email_ids = mail.search(None, search_criteria)
# 获取最新的邮件内容
id_list = email_ids[0].split()
if id_list:
latest_email_id = id_list[-1]
status, email_data = mail.fetch(latest_email_id, "(RFC822)")
raw_email = email_data[0][1]
email_message = email.message_from_bytes(raw_email)
# 弹出提示框显示邮件内容
root = tk.Tk()
root.withdraw()
msg = f"New email from {
sender} with subject '{
subject}'\n\n{
email_message.get_payload()}"
tk.messagebox.showinfo(title="New Email", message=msg)