这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » s2.树莓派之开机发邮件(PI的ip+PI的图片,html格式)

共4条 1/1 1 跳转至

s2.树莓派之开机发邮件(PI的ip+PI的图片,html格式)

菜鸟
2014-09-21 22:21:37     打赏

树莓的基本环境已经搭建完了,但是有个问题是,如果由于网络变动,导致PI的ip地址发生变化,那么就无法通过ssh进入PI,所以为了能正确获得PI的ip,可以在开机的时候通过PI发送邮件给自己的邮箱,告诉你PI的IP。

     1.  写一个python脚本startup_mailer.py,用来发送邮件(参考elinux.org/RPi_Email_IP_On_Boot_Debian     
    #!/usr/bin/env python
    import subprocess import smtplib
    import socket
    import datetime

    from email .mime. text import MIMEText
    from email .mime. multipart import MIMEMultipart
    from email .mime. image import MIMEImage

    mailto = 'send email Address'
    gmail_user = 'Your gmail Address'
    gmail_password = 'Your gmail password'

    def send_mail(to_list ,sub):
        smtpserver = smtplib.SMTP('smtp.gmail.com' ,587)
        smtpserver .ehlo()
        smtpserver .starttls()
        smtpserver .ehlo()
        smtpserver .login( gmail_user,gmail_password )
        today = datetime.date.today
        
        arg = 'ip route list'
        p = subprocess.Popen(arg ,shell= True,stdout =subprocess.PIPE)
        data = p. communicate()
        split_data = data[ 0].split ()
        ipaddr = split_datap[split_data.index ('src')+ 1]
        PI_ip = 'Your ip is %s' % ipaddr
        content = "<a href = 'http://xdocutju.com'>"+PI_ip +"</a>"+"<br><img src=" +"cid:img1"+">"
        msgText = MIMEText(content,_subtype ='html', _charset='gb2312' )
        
        fp = open( '/home/pi/ocr_pi.png','rb' )
        msgImg = MIMEImage(fp.read ())
        fp.close()
        msgImg .add_header('Content-ID','<img1>' )
        
        msgRoot = MIMEMultipart('multipart')
        msgRoot = attach(msgText)
        msgRoot = attach(msgImg)
        
        msgRoot ['Subject'] = sub
        msgRoot ['From'] = gmail_user
        msgRoot ['To'] = to_list
        smtpserver .sendmail(gmail_user,[to_list ],msgRoot.as_string())
        smtpserver .quit()
        
        return True

    if __name__ == '__main__'
         if send_main(mailto,'hello from PI' ):
             print "send success"
         else
             print "send fail"
     2.  将脚本startup_mailer.py移至/etc/init.d/目录下           修改其权限:sudo chmod +x /etc/init.d/startup_mailer.py           代码测试:   sudo /etc/init.d/startup_mailer.py start                      将脚本加入启动清单,重启,成功           sudo update-rc.d startup_mailer.py defaults                      如果以后要删除这个任务,sudo update-rc.d startiup_mailer.py remove Done!



关键词: 树莓派;     开机邮件     ip+PI    

院士
2014-09-22 09:27:09     打赏
2楼
这个开发进程都放在一个帖子中多好啊

菜鸟
2014-09-23 10:59:46     打赏
3楼
OK

助工
2014-09-25 09:05:01     打赏
4楼

哥,脚本里使用的gmail邮箱可以直接换成其他邮箱吗?


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]