python3代码
这里代码测试使用Thonny编译器在树莓派3B+上运行
注意:树莓派发送邮件需要联网,而联网操作有一定延迟,即网络还未连接,而代码已经运行,所以在代码中加入了10秒延迟以确保在网络连接的情况下执行代码
import socket
import smtplib
import time
#发送者的邮箱
QQMAIL_USER = 'xxxxxxxxxx@qq.com'
#smtp服务的授权码
QQMAIL_PASS = '你自己的授权码'
#smtp的服务类型
SMTP_SERVER = 'smtp.qq.com'
SMTP_PORT = 25
#接受者
recipient1='xxxxxxxxxx@qq.com'
#邮件主题
subject1 = 'ip_address'
def get_host_ip():
#这个方法获取树莓派ip地址并返回
try:
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.connect(('8.8.8.8',80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
def send_mail(input_text):
#这个方法接收一个字符串变量,根据内容发送邮件
text = input_text
smtpserver = smtplib.SMTP(SMTP_SERVER,SMTP_PORT)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(QQMAIL_USER,QQMAIL_PASS)
header = 'To:'+recipient1+'\n'+'From:'+QQMAIL_USER
header = header + '\n' +'Subject:' + subject1 +'\n'
timeStr = time.strftime(' %Y_%m_%d %H:%M:%S',time.localtime(time.time()))
msg = header +'\n'+text+'\n'+timeStr+'\n\n'
smtpserver.sendmail(QQMAIL_USER,recipient1,msg)
smtpserver.close()
time.sleep(10)
send_mail(get_host_ip())
开机启动设置方法
1、直接编辑 /etc/rc.local文件
例如如果你要执行的程序路径为 /home/pi/Desktop/code/get_ip.py
在rc.local文件里Exit 0 前加入
sudo /usr/bin/python /home/pi/Desktop/code/get_ip.py

2、创建autostart文件夹
在 /home/pi/.config 下创建一个文件夹,名称为 autostart,并在该文件夹下创建一个xxx.desktop文件(文件名以.desktop结尾,前面可以自定义),文件内容如下:
[Desktop Entry]
Type=Application
Exec=python /home/pi/Desktop/code/get_ip.py
本文介绍了如何在树莓派上使用Python3编写脚本,开机时自动发送当前IP地址到指定邮箱。通过两种方法实现开机启动:1) 编辑/etc/rc.local文件;2) 创建autostart文件夹并设定桌面启动文件。
3317

被折叠的 条评论
为什么被折叠?



