I can’t take credit for most of this, but modified it slightly to include both network and public IP addresses.
With a Gmail address, you’ll need to allow access for less-secure apps at https://myaccount.google.com. No idea whether you can make it work with 2FA.
Put the script somewhere (
home/pi/scripts/?) and call from
etc/rc.local with a
sleep 30 or similar command so you’re sure it boots up before trying to send.
See https://gist.github.com/johnantoni/8199088 and citations therein for the original concept.