本帖最后由 ky123 于 2018-1-31 14:18 编辑
感谢e络盟提供的大赛助力基金。利用树莓派作为一个远程的服务器,可以开启各种应用场景,远程监控,远程云盘,远程连接,智能家居控制中心等等。
对于自动发送邮件功能,也是经常使用到的,比如自动发送树莓派检测到的一些数据,远程发送给用户,用来做下一步处理。
本文是用Python写的一个自动发送邮件的脚本,调用函数时,直接把发件人邮箱地址、密码、收件人邮箱地址、邮件标题、内容等信息传递给函数,即可实现自动发送邮件功能。
发送邮件的脚本代码如下:
# -*- coding: UTF-8 -*- import sys, os, re, urllib, urlparse import smtplib import traceback from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart
def sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password): ''''' @subject:邮件主题 @msg:邮件内容 @toaddrs:收信人的邮箱地址 @fromaddr:发信人的邮箱地址 @smtpaddr:smtp服务地址,可以在邮箱看,比如163邮箱为smtp.163.com @password:发信人的邮箱密码 ''' mail_msg = MIMEMultipart() if not isinstance(subject,unicode): subject = unicode(subject, 'utf-8') mail_msg['Subject'] = subject mail_msg['From'] =fromaddr mail_msg['To'] = ','.join(toaddrs) mail_msg.attach(MIMEText(msg, 'html', 'utf-8')) try: s = smtplib.SMTP() s.connect(smtpaddr) #连接smtp服务器 s.login(fromaddr,password) #登录邮箱 s.sendmail(fromaddr, toaddrs, mail_msg.as_string()) #发送邮件 s.quit() except Exception,e: print "Error: unable to send email" print traceback.format_exc()
if __name__ == '__main__': fromaddr = "xxxxxxxx@163.com" smtpaddr = "smtp.163.com" toaddrs = ["xxxxxxxx@qq.com","xxxxxxxxx@163.com"] subject = "邮件标题" #body=‘邮件内容\n测试一下’
password = "xxxxxxxx" msg = "测试一下" sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password)
测试结果:
下一步可以开启定时发送邮件,或者时间开启发送邮件,进一步实现所需的功能了。
我的其它帖子:
1树莓派DIY之一------晒晒我的树莓派靓照https://www.cirmall.com/bbs/forum ... =97885&fromuid=8155
2 树莓派DIY之二------开启开发环境之远程桌面连接,配置vnc
https://www.cirmall.com/bbs/forum ... =97897&fromuid=8155
|