2023年亲测有效----树莓派启动时自动邮件上报ip

news2025/1/12 1:41:28

2023年亲测 树莓派启动时自动邮件上报ip

  • 首先开启qq邮箱smtp服务
  • shell文件内容
  • 启动自动执行
  • python文件
  • 注意事项

首先开启qq邮箱smtp服务

然后点击开启就会有授权码
在这里插入图片描述

shell文件内容

在自己的shell里,运行echo $PATH,把内容覆盖下面的path。
功能 作用就是 测试网络系统是否成功联通,命令ifconfig是否会有正常输出

#!/bin/bash
export PATH='/home/pi/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/snap/bin'
while true; do (echo `ifconfig|grep 192.168`)&& break;sleep 1;done;
python3 /home/pi/rePortIp.py 

启动自动执行

主要工具:crontab

crontab -e

添加末尾如下,ctrl + s 保存,然后ctrl + x退出

@reboot /home/pi/reportIp.sh

python文件

python文件就是邮件发送了

# coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
import os
import time

#发送内容t
def mail(t):
    ret=True
    try:
        msg=MIMEText(t,'plain','utf-8')
        msg['From']=formataddr(["Jack",my_sender])          # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['To']=formataddr(["Rose",my_user])              # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['Subject']="树莓派IP地址获取上报"                   # 邮件的主题,也可以说是标题
        server=smtplib.SMTP("smtp.qq.com", 587)             # 发件人邮箱中的SMTP服务器,端口是587
        server.login(my_sender, my_pass)                    # 括号中对应的是发件人邮箱账号、邮箱密码
        server.sendmail(my_sender,[my_user,],msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
        server.quit()  # 关闭连接
    except Exception:  # 如果 try 中的语句没有执行,则会执行下面的 ret=False
        ret=False
    return ret
# 获取ifconfig命令内容

cmd='ifconfig |grep 192.'


t = "empty"
while t == "empty":
    with os.popen(cmd,"r") as p:
        t = p.read()
        if not t:
            t = "empty"
    time.sleep(5)

        
# 设置发件人和收件人信息
my_sender='xxxx@xxx.com'  # 自己的邮箱账号
my_pass = 'xxx'   # 发件人邮箱密码(之前获取的授权码)
my_user=my_sender    # 自己的邮箱账号


ret=mail(t)
if ret:
    print("发送邮件成功")
else:
    print("发送邮件失败")

注意事项

1.确认开启了邮箱服务,然后获得了授权
2. 确认有.sh文件和.py文件,注意自己设置路径
3. 确认crontab设置okay
4.reboot试试吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/981475.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图解系列 图解Kafka之Producer

开局一张图,其他全靠吹 发送消息流程如下: 1.初始化流程 指定bootstrap.servers,地址的格式为 host:port。它会连接bootstrap.servers参数指定的所有Broker,Producer启动时会发起与这些Broker的连接。因此,如果你为这…

点云从入门到精通技术详解100篇-伪雷达点云预测

前言 近年来,“自动驾驶”已经成为一个耳熟能详的词语,它是一种通过车载计 算实现无人驾驶的智能汽车系统。自动驾驶汽车依靠人工智能、视觉计算、视觉 传感器、控制设备和定位系统协同合作,让系统可以在无人主动操作的情况下, 自动安全地操作机动车辆。其中视觉传感器作…

【继RNN之后的一项技术】Transfomer 学习笔记

谷歌团队在17年的神作,论文17年6月发布 https://arxiv.org/abs/1706.03762 被NIPS2017收录,目前引用量已经逼近3w。 以下内容参考李沐老师的课程《动⼿学深度学习(Pytorch版)》 简介 注意力 自主性:有目的的搜索某样东西(键&…

Python小知识 - 如何使用Python进行机器学习

如何使用Python进行机器学习 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 机器学习是人工智能的一个分支,是让计算机自动“学习”。学习的过程是从经验E中获得知识K。经验E可以是一个数据集,比如一个图像数据集。知识K可以是计算机…

Python爬虫-爬取文档内容,如何去掉文档中的表格,并保存正文内容

前言 本文是该专栏的第58篇,后面会持续分享python爬虫干货知识,记得关注。 做过爬虫项目的同学,可能或多或少爬取过文档数据,比如说“政务网站,新闻网站,小说网站”等平台的文档数据。爬取文档数据,笔者这里就不过多详述,而本文,笔者将主要介绍在爬取文档数据的过程中…

六安RapidSSL泛域名https能保护几个域名

RapidSSL是Geotrust旗下的子品牌,Geotrust是国际知名的CA认证机构,每年都要通过WebTrust年检,而Geotrust旗下的https证书已经应用于市场多年,Geotrust的子品牌RapidSSL证书经营的DV基础型泛域名https证书也受到市场的欢迎。今天就…

MFC新建内部消息

提示:记录一下MFC新建内部消息的成功过程 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 先说一下基本情况,因为要在mapview上增加一个显示加载时间的功能。然后发现是要等加载完再显示时间,显示在主…

动手学深度学习d2l.Animator无法在PyCharm中显示动态图片的解决方案

from d2l import torch as d2l一、问题描述 运行d2l的训练函数&#xff0c;仅在控制台输出以下内容&#xff0c;无法显示动态图片&#xff08;训练监控&#xff09; <Figure size 350x250 with 1 Axes> <Figure size 350x250 with 1 Axes> <Figure size 350x2…

数据结构与算法之贪心动态规划

一&#xff1a;思考 1.某天早上公司领导找你解决一个问题&#xff0c;明天公司有N个同等级的会议需要使用同一个会议室&#xff0c;现在给你这个N个会议的开始和结束 时间&#xff0c;你怎么样安排才能使会议室最大利用&#xff1f;即安排最多场次的会议&#xff1f;电影的话 那…

Fiddler 系列教程(一)初识Fiddler,我们能用fiddler做什么?

Fiddler是最强大最好用的Web调试工具之一&#xff0c;它能记录所有客户端和服务器的http和https请求&#xff0c;允许你监视&#xff0c;设置断点&#xff0c;甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说&#xff0c;都有很大的帮助。 阅读目录 Fiddler的基本介…

23个react常见问题

1、setState 是异步还是同步&#xff1f; 合成事件中是异步 钩子函数中的是异步 原生事件中是同步 setTimeout中是同步 相关链接&#xff1a;你真的理解setState吗&#xff1f;&#xff1a; 2、聊聊 react16.4 的生命周期 图片 相关连接&#xff1a;React 生命周期 我对 Reac…

康耐视visionpro破解版满天飞,那么如何查询康耐视Visionpro加密狗支持哪些工具

目录 第一步骤&#xff0c;点击WinR&#xff0c;弹出命令符第二步骤&#xff1a;输入CMD&#xff0c;回车第三步骤&#xff1a;输入cogtool -p&#xff08;cogtool与-p之间有空格&#xff09;&#xff0c;输入完毕后&#xff0c;记得回车&#xff0c;稍等3秒钟不到。 第一步骤&…

[js] 图解 event.pageX event.clientX event.offsetX getBoundingClientRect

event.clientX、event.clientY 鼠标相对于浏览器窗口可视区域的X&#xff0c;Y坐标&#xff08;窗口坐标&#xff09;&#xff0c;可视区域不包括工具栏和滚动条。IE事件和标准事件都定义了这2个属性 event.pageX、event.pageY 类似于event.clientX、event.clientY&#xff0c;…

作为一名游戏开发工作者,分享一些工作经验

作为一名游戏开发工作者&#xff0c;有一些重要的心得和经验可以分享&#xff0c;这些经验可以帮助你更好地在游戏开发领域取得成功&#xff1a; 学习不断进步&#xff1a;游戏开发是一个不断演进的领域&#xff0c;你需要不断学习新的技术和工具。跟踪最新的游戏开发趋势&…

Excel VSTO开发2 -建立Excel VSTO项目

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 2 建立Excel VSTO项目 新建项目&#xff0c;选择Excel 2013和2016 VSTO外接程序。输入项目名称&#xff08;本示例的项目名称为&am…

python基于Django健身爱好者交流分享平台vue

而肌友网—健身交流平台能很好地解决这一问题&#xff0c;轻松应对健身交流&#xff0c;既能提高用户对健身交流的评价&#xff0c;又能加快健身交流平台的效率&#xff0c;取代人工管理是必然趋势。 本肌友网—健身交流平台以Django作为框架&#xff0c;B/S模式以及MySql作为后…

Android Studio开发入门教程:如何让开发的app国际化?

配置APP的语言环境&#xff08;文末有Android Studio以及雷电模拟器的压缩包&#xff09; 实验目的&#xff1a; 为了使我们基于android操作系统开发的APP能更好的国际化&#xff0c;面向不同的国家市场&#xff0c;我们需要做出相关的操作&#xff0c;使开发出来的APP会根据用…

解决husky在mac下不生效的问题

目录 一、问题 1.1 问题描述 二、解决 2.1 解决 一、问题 1.1 问题描述 本文主要解决的问题是&#xff0c;husky在windows上正常生肖&#xff0c;但放到mac下后不生效的问题&#xff01; 为了确保团队中提交代码的一致性&#xff0c;因此使用了 husky 作为提交的检测工具…

【第二章 数据的表示和运算】d1

【2.1】 各种码的比较&#xff0c;0的表示&#xff1a; 【2.2】 符号扩展&#xff1a; 溢出判别用异或&#xff08;不同01/10取1&#xff0c;相同00/11取0&#xff09;&#xff1a; 进位判别符号位Cs&#xff0c;最高位C1&#xff1a; 补码与-x的补码&#xff1a; /2&…

【Seata】03 - Seata AT 模式全局锁相关知识简单整理

文章目录 前言参考目录版本说明分析整理1、全局锁的引入说明2、全局锁相关源码整理2.1、流程简图2.2、事务分支注册前的 SQL 相关操作2.3、注册分支&#xff08;获取全局锁&#xff09; 前言 上一篇文章介绍了 AT 模式的调用流程&#xff0c;但是有个比较重要的概念没有提及到…