0

I want to know if there is anyway I can make an email alert with a balloon popup in the system tray, so far starting with I have made a system tray icon using pyqt that seemed to be simple enough, but I am not finding any starting point for an email alert with specific keyword or to specific email id :-/

2
Contributors
1
Reply
14
Views
3 Years
Discussion Span
Last Post by chriswelborn
0

Sorry I don't have a solid example to back this up but I would start with either imaplib or poplib. Both allow you to login/authorize an email account and check for messages. From there it would be filtering addresses with either if 'my@email.com' in address.lower(), or a regex expression. I think the steps would be something like this:

Retrieval Stage for IMAP:

#1) Login using provided credentials
connection = imaplib.IMAP4('myemailhost.com', 143) # port 143 is default anyway
connection.login(USER, PASS)

#2) Retrieve messages
goodmsgs = connection.list("INBOX", "[optional regex to filter msgs]")

#3) Filter messages by email address
(may be able to do with while retrieving)

Retrieval Stage for POP3:

# 1) Login using provided credentials:
connection = poplib.POP3('pop.myhost.com', 110) # poprt 110 is default anyway
connection.user(USER)
msgcount, msgsize = connection.pass_(PASSWORD)
# another way to get message count:
# msgcount, msgsize = connection.stat()

# 2) Retrieve messages
# retrieve a message (single message in this case)
serverresponse, msglines, octects = connection.retr(2)

... if the message is a new one, and is from the right email address, move on to the display stage.

Display Stage:
4) Show pop-up with email count/preview
5) Wait 15 minutes (or however long you want)
6) Repeat

...I haven't tested all of this, only part of it. But with these two libraries (there may be even better ones out there) you can do what you want. This is just what a quick PyPi search, and help('poplib'); help('imaplib') turned up. My point is, if you can get a list of messages, filtering them by any keyword will be easy.

Edited by chriswelborn

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.