Skip to content

Instantly share code, notes, and snippets.

@kamigerami
Created September 24, 2018 09:39
Show Gist options
  • Save kamigerami/f5d3fd5d5274e8433c9257cfa1074067 to your computer and use it in GitHub Desktop.
Save kamigerami/f5d3fd5d5274e8433c9257cfa1074067 to your computer and use it in GitHub Desktop.
get_json_from_firebase_and_send_email
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import json
import smtplib
import datetime
from smtplib import SMTPException
from email.MIMEText import MIMEText
import string
today = datetime.date.today().strftime("%Y-%m-%d")
proxy = urllib2.ProxyHandler({'https': 'proxy:8080'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
response = urllib2.urlopen('https://domain.firebaseio.com/events.json?print=pretty&orderBy="datum"&equalTo="' + today + '"')
data = json.load(response)
def sendMail(sendfrom, sendto, subject, msg, subtype='plain'):
usr_from = sendfrom
msg = MIMEText(msg, subtype, _charset='utf-8')
msg['Subject'] = subject
msg['To'] = ';'.join(sendto)
msg['From'] = sendfrom
try:
server = smtplib.SMTP()
server.connect('localhost', '25')
server.sendmail(sendfrom, sendto, msg.as_string())
# ONLY for debug
# server.set_debuglevel(1)
# if exchange use STARTTLS auth, you need to uncomment next line
# server.starttls()
server.quit()
except SMTPException:
print "Error: unable to send email"
return;
def poststat(data):
put_data = json.dumps(data)
opener = urllib2.build_opener(urllib2.HTTPHandler, proxy)
request = urllib2.Request('https://domainbackup.firebaseio.com/events.json', data=put_data)
request.add_header('Content-Type', 'application/json')
request.get_method = lambda: 'PUT'
request_url = opener.open(request)
def getstat(data):
for v in data.itervalues():
body = """
samtal :
kvinna %(sk)s
man %(sm)s
prognos :
kvinna %(pk)s
man %(pm)s
""" % { 'sk': str(v['arende']['samtal']['kvinna']),
'sm': str(v['arende']['samtal']['man']),
'pk': str(v['arende']['prognos']['kvinna']),
'pm': str(v['arende']['prognos']['man']) }
plats = v['plats'].encode('utf-8')
epost = v['epost'].encode('utf-8')
subject = plats + " " + str(v['datum'])
sendto = ['email@domain.com', epost]
sendMail('email@domain.com', sendto, subject, body)
if len(data) != 0:
getstat(data)
poststat(data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment