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. document.getElementById()和document.forms[0].submit()
  2. linux c 调用 so 库
  3. Rust语言之HelloWorld Web版
  4. CUDA和cuDNN到底是啥关系?(cuDNN是基于CUDA的深度学习GPU加速库)
  5. FPGA学习及设计中的注意事项
  6. 三十、电子商务分析与服务推荐的分析方法与过程
  7. Nginx中Gzip压缩功能的实例配置
  8. linux查看文件从底部开始,linux中怎样从底部向上查看log文件
  9. linux erlang安装教程,linux(CentOS7)中安装erlang(20.3)以及rabbitmq(3.6.15)的步骤以及一些注意事项...
  10. pygame精灵组有哪些方法_利用 pygame 开发一款游戏:「跳跳兔」(六)
  11. 拓端tecdat|Python风险价值计算投资组合VaR(Value at Risk )、期望损失ES(Expected Shortfall)
  12. 极狐+华为,小鹏+大疆,极氪+mobileye,自动驾驶成为“风向标”
  13. 电脑软件推荐【含软件链接】:压缩,插件,截屏,录制,办公,电脑防护与修复,磁盘清理,软件卸载......
  14. matlab 整数规划 非线性,非线性整数规划matlab
  15. Android 使用OPENCV实现图像实时对比
  16. 低碳生活进行时!国产“芯”RK3568创造智慧出行新体验
  17. python图片转pdf
  18. Linux下文件丢失问题
  19. c语言realpath
  20. 视频编辑SDK,AE模版SDK,绿幕抠图SDK,AI人像分割SDK,VLOG模版SDK

热门文章

  1. 一年级男生上课不专心,说了很多次都不改!
  2. 统信UOS手动更新系统时备份失败,如何用命令自动更新系统
  3. torchnet tnt.Meter
  4. Mathpix Snipping Tool
  5. ASEMI场效应管7N60,7N60详细参数,7N60应用领域
  6. 解释hy(Xcms)内容管理系统中,后台manager文件夹中所有ftl页面中指令标签的调用,全部都用@ms.打头的原因
  7. 一个2D沙盒小游戏1.2
  8. shiro 721 反序列化漏洞复现与原理以及Padding Oracle Attack攻击加解密原理
  9. Python飞机大战实例有感——pygame如何实现“切歌”以及多曲重奏?
  10. 无线渗透(六)WPS、伪造AP