====== IP-Adresse per Mail ======
Wenn der Raspberry Pi per DHCP in einem Netzwerk eingebunden ist, dann benötigt man für Remote-Verbindungen die IP-Adresse.
Mit folgendem kleinen Script, und der passenden Systemkonfiguration kann man das leicht machen:
| mail-ip.py
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import subprocess
import smtplib
import socket
from email.mime.text import MIMEText
import datetime
import time
# Diese Werte müssen noch angepasst werden. Zeitverzögerung für WLAN Login
time.sleep(15)
to = 'empfaenger@email-adresse.de'
gmail_user = 'konto-adresse@gmail.com'
gmail_password = 'mein-passwort'
smtpserver = smtplib.SMTP('smtp.gmail.com', 587)
#
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(gmail_user, gmail_password)
today = datetime.date.today()
# Linux spezifisch
arg='ip route list'
p=subprocess.Popen(arg,shell=True,stdout=subprocess.PIPE)
data = p.communicate()
split_data = data[0].split()
ipaddr = split_data[split_data.index('src')+1]
my_ip = 'Die aktuelle IP ist %s' % ipaddr
msg = MIMEText(my_ip)
msg['Subject'] = 'IP des RaspberryPi am %s' % today.strftime('%b %d %Y')
msg['From'] = gmail_user
msg['To'] = to
smtpserver.sendmail(gmail_user, [to], msg.as_string())
smtpserver.quit()
Das Script muss dann noch ausführbar gemacht werden
* make it automatically run whenever the RPi is booting: \\ **sudo nano /etc/rc.local**
* add a new line: \\ **if [ “$_IP” ]; then** \\ **printf “My IP address is %s\n” “$_IP”** \\ **python /home/pi/Code/startup_mailer.py** \\ **fi**
sudo chmod +x mail-ip.py
und am besten dann in die Crontab beim Neustart eintragen:
sudo crontab -e
und dann folgende Zeile einfügen:
@reboot python /home/pi/mail-ip.py
Jetzt wäre noch eine gute Gelegenheit die E-Mail Zugangsdaten anzupassen und Texte zu ändern. ;-)
----
[[:faq:raspi:start|zurück]]