RPi Email IP On Boot Debian

Back to RPi Guides.

Send Email Containing IP Address On Boot

=What does it do?=

This code will extract the ip address of your Pi and then send an email containing the ip to the specified email address. This is inspired by the need to access the Pi via SSH or other network protocols without a monitor and moving from network to network. This assumes a Gmail SMTP server. You may need to alter a bit for other servers (beyond scope here)

=What do you need?=

A working, and network enabled Raspberry Pi

=What skill level is required?=

Medium Level. You should be comfortable navigating a linux system and be comfortable using sudo (if you want to use this script, odds are you are quite comfortable at the command prompt).

=Overview of this guide= You need to
 * Create a python script and store it in a Directory
 * Make python script executable
 * Edit /boot/boot.rc

=Let's Do It=

Create the python script
Copy and paste the following code into a text editor (I'm a nano man myself)

import subprocess import smtplib import socket from email.mime.text import MIMEText import datetime to = 'me@example.com' gmail_user = 'test@gmail.com' gmail_password = 'yourpassword' smtpserver = smtplib.SMTP('smtp.gmail.com', 587) smtpserver.ehlo smtpserver.starttls smtpserver.ehlo smtpserver.login(gmail_user, gmail_password) today = datetime.date.today 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 = 'Your ip is %s' % ipaddr msg = MIMEText(my_ip) msg['Subject'] = 'IP For RaspberryPi on %s' % today.strftime('%b %d %Y') msg['From'] = gmail_user msg['To'] = to smtpserver.sendmail(gmail_user, [to], msg.as_string) smtpserver.quit
 * 1) Change to your own account information
 * 1) Very Linux Specific

Save this script using a nice name like 'startup_mailer.py' and make note of its path (like /home/pi/Code/startup_mailer.py)

For good measure, make the script executable sudo chmod +x startup_mailer.py

Edit /boot/boot.rc
Using your text editor once again, edit /boot/boot.rc (this assumes you have already renamed this file to boot.rc Need to add link here for reference). For example: sudo nano /boot/boot.rc

Add the following at the end of the file, making changes to the path for your directory tree and save. python /home/pi/Code/startup_mailer.py
 * 1) Script to email ip address upon reboot

Finish up
Reboot your Pi and you should receive an email with your ip address