用python写一段收到邮件会在桌面弹出提醒
时间: 2024-05-15 10:16:55 浏览: 13
由于该代码需要访问你的电子邮件账户,因此建议仅在完全信任的环境中运行。
```python
import imaplib
import email
import os
import subprocess
# 邮箱登录信息
IMAP_SERVER = 'imap.gmail.com'
IMAP_PORT = 993
EMAIL_ACCOUNT = 'your_email_address@gmail.com'
EMAIL_PASSWORD = 'your_email_password'
# 桌面提醒标题和内容
TITLE = 'New Email'
MESSAGE = 'You have a new email!'
# 桌面提醒命令
NOTIFICATION_COMMAND = 'osascript -e \'display notification "{}" with title "{}"\''
# 连接到邮箱服务器
mail = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
mail.login(EMAIL_ACCOUNT, EMAIL_PASSWORD)
mail.select('inbox')
# 搜索未读邮件
status, response = mail.search(None, 'UNSEEN')
if status == 'OK':
unread_msg_nums = response[0].split()
for num in unread_msg_nums:
# 获取邮件内容
status, response = mail.fetch(num, '(RFC822)')
if status == 'OK':
email_body = response[0][1]
# 解析邮件内容
mail_message = email.message_from_bytes(email_body)
subject = mail_message['subject']
# 弹出桌面提醒
subprocess.call(NOTIFICATION_COMMAND.format(MESSAGE, TITLE), shell=True)
# 标记邮件为已读
mail.store(num, '+FLAGS', '\\Seen')
else:
print('No new emails found')
# 关闭连接
mail.close()
mail.logout()
```
此代码将连接到指定的IMAP服务器,使用指定的电子邮件地址和密码登录,然后搜索未读邮件并在桌面上弹出提醒。如果找不到新邮件,则不会发出提醒。请注意,在此示例中,我们使用“osascript”命令在Mac OS X上显示桌面通知。如果您正在运行不同的操作系统,请相应地更改“NOTIFICATION_COMMAND”变量。