#!/usr/bin/python3.5
# -*-coding:Utf-8
import json
import requests
import datetime
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from configparser import ConfigParser
parser_file = "/etc/camera/configuration.ini"
parser = ConfigParser()
parser.read(parser_file)
mail_site = parser.get("mails", "mail_site")
mail_site_mdp = parser.get("mails", "mail_site_mdp")
mail_perso = parser.get("mails", "mail_perso")
smtp_port = int(parser.get("mails", "smtp_port"))
home = parser.get("paths", "home")
fournisseur = mail_site.split("@")[1]
login = mail_site.split("@")[0]
filePath = f'{home}/currentIP.txt'
def notifyByMail(ip, date):
print("Sending email...")
dateString = date.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
server=smtplib.SMTP(f'smtp.{fournisseur}',smtp_port)
server.ehlo()
server.starttls()
server.login(login,mail_site_mdp)
msg = MIMEMultipart()
fromaddr = mail_site
msg['From'] = fromaddr
msg['Subject'] = f'IP Raspberry Caméras - {ip}'
body = f'Changement IP Raspberry : nouvelle IP : {ip} ; date : {dateString}'
msg.attach(MIMEText(body, 'plain'))
server.sendmail(fromaddr,mail_perso ,msg.as_string())
print("Message sent")
server.quit()
print("Server quit !")
def getPreviousIP():
try:
fichierIP = open(filePath,"r")
rebuilt = json.loads(fichierIP.read())
return rebuilt["ip"]
except FileNotFoundError:
return "-1"
def saveIP(ip, date):
dateString = date.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
values = {"ip":ip, "date":dateString}
text = json.dumps(values)
fichierIP = open(filePath,"w")
fichierIP.write(text)
fichierIP.close()
ip = json.loads(requests.get("http://httpbin.org/ip").text)["origin"]
if getPreviousIP() != ip:
date = datetime.datetime.now()
saveIP(ip, date)
notifyByMail(ip, date)