树莓派开机自动发送IP到指定QQ邮箱
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派开机自动发送IP到指定QQ邮箱相关的知识,希望对你有一定的参考价值。
开启QQ邮箱的smtp服务(自行百度)
获取IP,发送IP的python代码
Sudo nano send_ip.py
Python代码
//send_ip
#!\usr\bin\env python
#-*-coding: utf-8-*-
import socket
import time
import smtplib
import urllib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.utils import formataddr
#检查网络连通性
def check_network():
while True:
try:
result=urllib.urlopen(‘http://baidu.com‘).read()
print result
print "Network is Ready!"
break
except Exception,e:
print e
print "Network is not ready,Sleep 5s..."
time.sleep(5)
return True
#获取本级制定接口的ip地址
def get_ip_address():
s =socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.connect(("1.1.1.1",80))
ipaddr=s.getsockname()[0]
s.close()
return ipaddr
def sendEmail():
ret=True
ipaddr=get_ip_address();
try:
msg=MIMEText(ipaddr,‘plain‘,‘utf-8‘)
msg[‘From‘]=formataddr(["用户名",‘[email protected]‘])
msg[‘To‘]=formataddr(["收件人",‘[email protected]‘])
msg[‘Subject‘]="树莓派IP"
server=smtplib.SMTP_SSL("smtp.qq.com",465)
server.login("[email protected]","SMTP的授权码")
server.sendmail(‘[email protected]‘,[‘[email protected]‘,],msg.as_string())
server.quit()
print(‘邮件发送成功‘)
ret=True
except:
ret=False
if __name__ == ‘__main__‘ :
check_network()
sendEmail()
sudo chmod 777 send_ip.py //加权限
设置开机自启
制作sh脚本
sudo nano clientStart.sh
输入如下脚本内容:
#!/bin/sh
cd /home/pi
sudo python send_ip.py
(其实就是将程序运行路径与程序执行命令写在了一个脚本里)
然后按ctrl+x退出,再按Y保存,再按Enter,此时回到了主界面。
修改clientStart.sh的权限
在主界面里输入以下命令:
sudo chmod 777 /home/pi/track/clientStart.sh
一定要修改这个权限,否则无法执行
向rc.local添加我们制作的这个脚本,用于开机启动。
使用命令:
sudo nano /etc/rc.local
回车后,就进入了rc.local,这时,在exit 0的上一行,写入如下程序:
/home/pi/track/clientStart.sh start
按ctrl+x,再按Y保存,再按Enter,此时,又回到了主界面。
(上面的步骤,实际上就是将上面制作的脚本添加到rc.local里)
上面的做完后,重启树莓派,send_ip.py就可以自动运行了,以后,只要一通电,它就会自己运行。
以上是关于树莓派开机自动发送IP到指定QQ邮箱的主要内容,如果未能解决你的问题,请参考以下文章