GNU/Linux Telegram/Bot Mail Alert Script (Procmail/Python)

Small script to send a telegram chat message to a user when new mail arrives. Script uses procmail and a small python script to process the message and to send the alert alert message through a telegram bot api.

.procmailrc file:

#LOGFILE=/path/to/pmlog
#VERBOSE=yes
#LOGABSTRACT=all
INCLUDERC=/etc/procmail-rc/filter-potentialproblem-rc
INCLUDERC=/etc/procmail-rc/filter-potentialproblem2-rc
INCLUDERC=/etc/procmail-rc/filter-spamassassin08-rc

:0Wc:
| env python ./.pmscript.py

:0
.mail/

.pmscript.py file:

import sys
import email
import httplib
import urllib

# Contstants...
email_addresses = ['test@example.com', 'info@example.com']
key = "telegram_botkey"
userid = "telegram_userid"
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
hostname = "api.telegram.org"
uri = "/bot" + key + "/sendMessage"

# Read from stdin...
full_msg = sys.stdin.read()
msg = email.message_from_string(full_msg)

# Get info from message...
mto = msg['to']
msubject = msg['subject']
mfrom = msg['from']

# Check if e-mail in list...
for mailaddr in email_addresses:
  if mailaddr in mto:
    mrow = "[S6:NewMailAlert] \nFrom: " + mfrom + " \nSubject: " + msubject
    params = urllib.urlencode({'chat_id': userid, 'disable_web_page_preview': '1', 'text': mrow})
    connectie = httplib.HTTPSConnection(host=hostname, port=443)
    connectie.request("POST", uri, params, headers)
    resultaat = connectie.getresponse()
    if resultaat.status <> 200:
      print resultaat.status, resultaat.reason