Voici un petit exemplePython qui vous montre comment envoyer un email grâce un script.
Dans mon exemple, j’envoi l’adresse IP internet, ce qui peut permettre de connaitre l’adresse IP du système pour s’y connecter en ssh par exemple.
Cela peut être utile si l’adresse IP change souvent et évite l’utilisation d’une redirection DNS. Il pourra ensuite être intégré dans le CRON pour un envoi automatique.
Dans le cadre d’un relais radio amateur on peut trés bien intégrer le lancement du script sur une commande DTMF voir le code publié sur le site support SvxCard.
set runcmd [exec python /chemin/IP_email.py];
En ajoutant la ligne ci-dessus après :
set runcmd [exec curl http://ip.42.pl/short 2>&1]; #Internet IP adress
Ci dessous le code source en python pour réaliser cette fonction:
En majuscule les éléments à modifier, j’utilise pour les essais une adresse GMAIL.
[sourcecode language=”python”]
!/usr/bin/env python
#-*- coding: utf-8 -*-
import smtplib
from urllib2 import urlopen
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
my_ip = urlopen(‘http://ip.42.pl/raw’).read()
fromaddr = "VOTRE ADRESSE EMAIL"
toaddr = ‘ADRESSE_DESTINATAIRE1,ADRESSE_DESTINATAIRE2,ADRESSE_DESTINATAIRE3’
msg = MIMEMultipart()
msg[‘From’] = fromaddr
msg[‘To’] = toaddr
msg[‘Subject’] = "SUJET"
body = "Ceci est un test de message automatique adresse IP:" + str(my_ip)
msg.attach(MIMEText(body, ‘plain’))
server = smtplib.SMTP(‘smtp.gmail.com’, 587)
server.starttls()
server.login(fromaddr, "MOT DE PASSE")
text = msg.as_string()
server.sendmail(fromaddr, toaddr.split(‘,’), text)
server.quit()
[/sourcecode]