[置顶] 利用Python 提醒实验室同学值日(自动发送邮件)

标签: python 邮件 脚本 自动化
283人阅读 评论(0) 收藏 举报
分类:

    前言:

          在实验室里一直存在着一个问题,就是老是有人忘记提醒下一个人值日,然后值日就被迫中断了。毕竟良好的        卫生环境需要大家一起来维护的!没办法只能想出一些小对策了。

     解决思路:

          首先,我想使用python 写个脚本,原因是其拥有众多的库,操作方便。首先实现使用Python 登陆邮箱然后发送        邮件的功能。然后再解决定时发送和对实验室同学轮流发送的问题。在第二步中有两个解决方案:

          1⃣️使用win 2012服务器 的定时任务功能,到指定时间进行自动执行脚本。然后将同学们的邮箱放到一个文件中     ,其中第一行为发送邮件的次数。从第二行开始是同学们的邮箱。每执行一次就增加改变一次数值。通过取余,计         算出应该将邮件发送给谁。

              2⃣️不用那么麻烦,但是需要一直占用些CPU 资源。就是利用while 循环,让脚本在服务器上一直运行。

    当然我选择的是第二种方法做的。

     脚本源码:

      

# -*- coding: UTF-8 -*-
import sys, os, re, urllib, urlparse
import smtplib
import time
import string
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()
        print "success"
    except Exception, e:
        print "Error: unable to send email"
        print traceback.format_exc()

group=("864678132@qq.com","1358548208@qq.com","843822062@qq.com","572939586@qq.com")#用来存放每个人的邮箱
i=0 # 用来记录发送次数,然后对人数取余进行判断应该发送给哪个邮箱
while True:
    now = time.strftime("%H")  # 获取当前时间 小时
    now = time.strftime(now)  # 转换成字符串
    nows = string.atoi(now)  # 转换成整数
    if nows == 18:  # 进行判断 在十八点后进行发送
        fromaddr = "发件人邮箱"
        smtpaddr = "smtp.163.com"
        toaddrs = [group[i]]
        subject = "实验室值日邮件"
        password = "授权码"
        msg = "今天记得打扫卫生哟!"
        sendmail(subject, msg, toaddrs, fromaddr, smtpaddr, password)
        i=(i+1)%len(group)
        time.sleep(6000)  #发送完后 等待一小时,避免重复发送
    else:
        time.sleep(3000)

    总结:

         让技术方便生活!

查看评论

利用Office 365 管理合同文档,实现定期提醒

-
  • 1970年01月01日 08:00

基于Python+Selenium2登录163邮箱实例--纯干货

一、业务流程: 1、打开浏览器,自动填写用户名和密码,登录成功后跳转到相应的页面。 2、验证相应页面的url与给定的url是否一致,如果一致则测试通过,如果不一致,则不通过。 3、另外,在执行过程中如...
  • andyzhouh
  • andyzhouh
  • 2017-06-13 16:08:37
  • 588

后台劳动者--后台执行的定时任务

目标:在后台定时执行打印当前时间的log Android定时任务一般有2种实现方式,一种是使用Java API里面提供的Timer类,另一种是Android的Alarm机制。但是前者无法唤醒CPU,...
  • qq_31568297
  • qq_31568297
  • 2016-11-10 21:03:22
  • 258

python学习笔记

1 基础     安装python2.7         wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz...
  • tianci_zzz
  • tianci_zzz
  • 2017-07-21 18:29:01
  • 3385

<em>python</em>编程快速上手 让繁琐工作自动化pdf下载 完整源码

<em>Python</em>编程快速上手:让繁琐工作自动化 高清文字版带...自动化<em>任务</em>第7章 模式匹配与正则表达式 115 7.1 ...取得反向<em>跟踪</em>的字符串 175 10.3 断言 176 10.3....
  • 2018年04月16日 00:00

python 爬虫教程

网络爬虫(又被称为网页蜘蛛,网络机器人)网络爬虫,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。...
  • freeking101
  • freeking101
  • 2017-03-17 18:08:57
  • 324815

Python 基础 —— Twisted介绍

http://blog.csdn.net/hanhuili/article/details/9389433 原文链接:http://www.aosabook.org/en/twisted.html 作...
  • HeatDeath
  • HeatDeath
  • 2017-08-04 18:39:37
  • 265

Python爬虫突破封禁的6种常见方法

在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方法是写一个自动化程序向网络...
  • offbye
  • offbye
  • 2016-08-17 22:36:59
  • 25840

python 第三方模块

Chardet,字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama,主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable,主要用于在终端或浏览器端构建格式化...
  • huayucong
  • huayucong
  • 2016-12-01 12:14:47
  • 5669

Python--基础语言应用

1. Python基础知识 1.1  Python历史 1.1.1 Python起源 Python的作者,Guido von Rossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数...
  • qq_26870933
  • qq_26870933
  • 2018-01-12 17:32:30
  • 981
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 14万+
    积分: 3335
    排名: 1万+
    微信公众号
    课程设计、视频资源、有料趣文
    免费资源网站


    微信公众号:Worldhello
    期待您的关注!
    博客专栏
    最新评论