--- /dev/null
+#!/usr/bin/env python3
+
+"""
+A very simple imap e-mail notifier.
+Tested (and working) with Debian 8 (Jessie) + Xfce.
+"""
+
+import imaplib
+import re
+import time
+import sys
+import os
+import argparse
+
+
+def MainProgram():
+ server_error = 0
+ status = ""
+ unread = 0
+
+ parser = argparse.ArgumentParser(description='Check your email.')
+ parser.add_argument("-g", "--gmail", help="connect to gmail imap server", action="store_true")
+ parser.add_argument("-c", "--custom", help="connect to custom imap server", type=str, default=argparse.SUPPRESS)
+ parser.add_argument("-u", "--user", help="Username", type=str, required=True)
+ parser.add_argument("-p", "--pword", help="Password", type=str, required=True)
+ parser.add_argument("-r", "--port", help="Port to connect to", default="993", type=int)
+ parser.add_argument("-d", "--display", help="Display Name", type=str)
+
+ args = parser.parse_args()
+
+ if args.gmail:
+ imapServer = "imap.gmail.com"
+ else:
+ if args.custom:
+ imapServer = args.custom
+
+ if args.display:
+ displayName = args.display
+ else:
+ displayName = imapUserName
+
+ try:
+ imapUserName = args.user
+ except Exception as e:
+ raise
+
+ try:
+ imapPass = args.pword
+ except Exception as e:
+ raise
+
+ try:
+ imapPort = args.port
+ except Exception as e:
+ raise
+
+
+ # # Enter your imap settings below
+ # imapServer = "imap.gmail.com"
+ # # imapUserName = "danixland@gmail.com"
+ # imapUserName = "it.danilo.macri@gmail.com"
+ # # imapPass = "jxibrnebktqbkhmx"
+ # imapPass = "udykutvueszpxfkd"
+ # imapPort = 993
+ # # displayName = "gmail - danixland"
+ # displayName = "gmail - Danilo Macri"
+
+ # Try to connect to imap server
+ try:
+ server = imaplib.IMAP4_SSL(imapServer, imapPort)
+ server.login(imapUserName, imapPass)
+ status, unread = server.status('INBOX', "(UNSEEN)")
+ except Exception:
+ pass
+
+ if status != "OK":
+ server_error = 1
+
+ # Retry a couple of times even though we got wrong response from server
+ while server_error >= 1 and server_error < 4:
+ time.sleep(2)
+ if status == "OK":
+ server_error = 0
+ else:
+ server_error += 1
+ MainProgram() # Try to connect again
+
+ CHECK_UNREAD = str(unread)
+ NO_OF_UNREAD = re.sub(r'\D', "", CHECK_UNREAD)
+
+ if server_error > 3:
+ # os.system('notify-send "Problem connecting to imap server"')
+ print("Problem connecting to imap server")
+ elif int(NO_OF_UNREAD) > 0:
+ # os.system('notify-send "You have new mail"')
+ print("/usr/share/icons/MB-Mango-Suru-GLOW/panel/16/new-messages-red.svg")
+ print("{}: {} new mail".format(displayName, NO_OF_UNREAD))
+ elif int(NO_OF_UNREAD) == 0:
+ print("/usr/share/icons/MB-Mango-Suru-GLOW/panel/16/applications-email-panel.svg")
+ print("{}: No new mail".format(displayName))
+
+
+MainProgram()