1. 前言

在使用 SSH 连接嵌入式 Linux 主板时,经常会遇到不知道板子 IP 的情况,这时就要通过串口登录或者其他方式查找 IP,然后再进行远程连接,很是繁琐。

如果能在 Linux 主板开机后,自动上报 IP,这样就方便很多了。

利用 Python 中的 yagmail 库,可以很简单的实现。

2. yagmail

在 Python 里发邮件,yagmail 应该是最简单的方式了。

yagmail官网 已经有很详细的说明,这里只记录一下我的操作步骤。

2.1 安装 yagmail

  • python2
pip install yagmail
  • python3
pip3 install yagmail

2.2 配置账号

  • 发件人信息
self_server = autosend_mail.SMTP(user="shilong_native@163.com", password="OPTZKTAEHISSYQOB", host="smtp.163.com")

参数包括 邮箱、密码、服务器,这里以 网易163 邮箱为例,密码不是明文密码,要在邮箱设置里生成一个类似个人令牌的口令,不同邮箱的生成方式都差不多,具体方法可以登录自己的邮箱,在设置页查看,或者百度。

  • QQ 邮箱为例(其他邮箱类似)

【qq邮箱——设置——账户——POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务——IMAP/SMTP服务——开启】

公共邮箱:添加端口号与smtp的属性即可(详细请百度解决)。

2.3 发送邮件

收件人可以设置多个,可以对每个收件人设置昵称,可以发送 html 格式的邮件,发送其他附件,也可以使图片在邮件正文显示,关于上述这些,这里就不多说了,可参见 yagmail 的 作者主页 。

完整代码如下 auto_email.py

#coding:utf-8import yagmail as autosend_mailfrom loguru import logger# 读取文件到列表
with open("ip.txt","r") as ip_file:array = []content = ip_file.read().splitline()for line in ip_file:array.append(line)# 邮件发送
# 发件人信息;(邮箱、密码、服务器)
self_server = autosend_mail.SMTP(user="shilong_native@163.com", password="OPTZKTAEHISSYQOB", host="smtp.163.com")      email_Name = ["416604093@qq.com"]           # 收件人;
# email_Title = ["demo"]                    # 邮件标题;(非必需)
email_Title = content
email_Content = array                       # 邮件内容;(非必需)
email_Annexes = ["ip.txt"]                  # 邮件附件;(非必需)self_server.send(to=email_Name, subject=email_Title, contents=email_Content, attachments=email_Annexes)
self_server.close()logger.info("\n**** Email is sent! ****\n")

3. 获取 ip

这个就很简单了,通过 shell 脚本获取 ip 数据,然后保存到文件即可。

再调用 auto_email.py 文件,把获取到的 ip 当作邮件内容发送出去。

最后就是把 shell 脚本添加到 Linux 的开机启动项里,这样在板子开机后,如果有网络,就会自动获取 ip,然后发给指定的邮箱了。

#/bin/bashsource_path = /home/pi/ip_report        # 开机脚本存放路径
sleep 15            # 延时等待系统开机并联网完成cd $source_path
uname -n > ip.txtecho "\r\n"
ifconfig >> ip.txt
python3 autoemail.py

Linux 自动发送本机 IP 到邮箱相关推荐

  1. Linux更改本机ip

    Linux如何更改本机ip 这段时间的工作需要用到Linux,所以需要学一下,所以做个笔记吧 1.登录到Linux(需要用root) 2.执行命令cd /etc/sysconfig/network-s ...

  2. linux获取本机IP地址

    转自:http://blog.csdn.net/bailyzheng/article/details/7489656 ifaddrs结构体定义如下: C代码   struct ifaddrs { st ...

  3. linux 取出本机IP

    取出本机IP地址: ifconfig|grep Bcast|awk -F: '{print $2}'|awk -F " " '{print $1}' ifconfig eth0|g ...

  4. udp linux 获取本机ip

    static uint32_t GetSenderIP(struct sockaddr_in * paddr){ /* int s_addr_getter;//??è?±?μ?·¢?íip ó?μ?s ...

  5. linux取本机ip命令,linux 单独取出本机IP地址

    [root@YZC ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:86:02:03 inet addr:59.151.110.2 ...

  6. Linux查看本机IP:curl cip.cc

    curl http://members.3322.org/dyndns/getip curl ip.6655.com/ip.aspx curl ifconfig.me curl icanhazip.c ...

  7. Ubuntu 18.04 查看本机IP地址的两种方法 ip和ifconfig

    Linux查看本机IP有两种方法,一种方法是使用废弃的ifconfig,第二种方法是使用内置的ip. 在Ubuntu 18.04中, net-tools 工具包没有被默认安装,这就意味着不能使用 if ...

  8. 在Linux上利用python获取本机ip

    下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码 ...

  9. linux 获取本机的所有IP地址

    linux下获取本地的ip地址,我这里只介绍一种,亲测有效,包括你虚拟出来的IP地址也可以显示出来. 先说一下可能大家都有听过的使用 gethostname 函数和 gethostbyname 函数获 ...

最新文章

  1. java超级简单到爆的Excel导入导出(easypoi)
  2. @RestController和@Controller区别
  3. svn update命令小记
  4. 9.12測试(四)——測试笔
  5. 团购硝烟慢慢散去之时:从团购身上我们可以学到什么?
  6. python对话机器人软件_如何用Python为聊天机器人创建对话?
  7. c语言处理字符串函数的头文件,C语言字符处理函数 - 20131125的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. 单目摄像头光学图像测距_摄像头与毫米波雷达(Radar)融合解析
  9. 浅析Lock工具类LockSupport
  10. 面试经验:求职面试时的835守则
  11. STM32/M3/M0关于开关总中断的问题
  12. 斗罗大陆服务器维护,04.28《斗罗大陆:武魂觉醒》停服维护公告(修罗1-7服先行服)...
  13. IAR 编译时找不到头文件的解决方法
  14. vs2008的预编译命令
  15. MySQL 操作语句大全(详细)
  16. win7笔记本外接显示器html,win7系统笔记本外接显示器的操作方法
  17. 去除百度搜索列表中广告的方法-电脑端
  18. PDF、PMF、CDF是什么
  19. BMW 与 Harvester 的云与边缘之旅
  20. 出现Head https://registry-1.docker.io/v2/library/node/manifests/14-alpine的解决方法

热门文章

  1. 详解修改docker镜像源加速下载(解决下载apollo修改docker源后下载速度仍然十分慢问题)
  2. UDP也可以安全传输
  3. 信息安全领域相关术语介绍
  4. 挖掘厂商SRC-记一次某OA在线登录洞edu不认账
  5. 出差不能在预期范围内回去怎么办
  6. mqtt 传文件断开连接的原因_MQTT——取消订阅报文和断开连接报文
  7. android安卓z4root下载,Z4ROOT
  8. Python分析春节档七部电影的口碑和票房数据,并可视化显示
  9. centos7 日志定期清理及修改系统日志保留时间
  10. 惠普系列笔记本爆出严重性能缺陷