关闭

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

标签: python邮件脚本自动化
232人阅读 评论(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)

    总结:

         让技术方便生活!

1
0
查看评论

【Python学习笔记】-自动发送邮件脚本

自动发送邮件功能是我们经常要用到的,比如每天定时统计报表信息,然后自动发送给运营人员,协助运营人员进行业务数据分析。本文是用Python写的一个自动发送邮件的脚本,调用函数时,直接把发件人邮箱地址、密码、收件人邮箱地址、邮件标题、内容等信息传递给函数,即可实现自动发送邮件功能。 脚本代码如下: ...
  • Kevin_zhai
  • Kevin_zhai
  • 2015-08-17 09:43
  • 13491

利用phpmailer自动发送邮件提醒

<br /> /** * 发送邮件 * @param $subject 邮件标题 * @param $body 邮件正文 */ public function sendMail($subject, $body, $email) { r...
  • YoungerChen
  • YoungerChen
  • 2010-11-01 18:17
  • 673

oracle 基于PLSQL实现发送邮件 UTL_SMTL

本文用指导如何使用Oracle 的UTL_SMTL进行发送邮件
  • Big2008Bone
  • Big2008Bone
  • 2015-12-03 19:07
  • 1313

利用Python自动发送邮件

Step1:加载需要用到的Python库 Step2:设置发件人和收件人的邮箱 Step1:加载需要用到的Python库 Step1:加载需要用到的Python库
  • TangZhijian2016
  • TangZhijian2016
  • 2017-02-10 21:10
  • 64

使用Excel和OutLook实现自动发送邮件

问题的产生 我们在平时工作中可能会遇到要批量发送邮件的工作,例如财务部根据每个人的工资情况发放工资条到个人的邮箱,因为邮件因人而异,所以需要完成大量而细致的工作,工作繁琐,重复劳动多,非常适合批量发送。因此研究如何利用电子表格建立数据,利用OutLook来发送这些数据,要求发送具有表格格式的工资条...
  • paul50060049
  • paul50060049
  • 2018-01-25 00:33
  • 267

使用python自动发送邮件

通过python编写的脚本能实现邮件的自动发送功能。 以后就可以全自动的推送自己的广告软文了。嘿嘿嘿。。。。。 现在记录一下这个功能。 注意如果使用qq的smtp转发功能的话,需要在设置页面中将该功能打开,然后设定密码,改密码就是赋值给下文password中的。 开启smtp转发功能...
  • yangshuolll
  • yangshuolll
  • 2015-09-09 11:19
  • 3182

python邮件自动发送

case 1:纯文本和HTML文件发送 # -*- coding: UTF-8 -*- import smtplib import traceback from email.mime.text import MIMEText from email.mime.multipart import MI...
  • u010035907
  • u010035907
  • 2017-01-08 11:48
  • 776

一个python的邮件发送脚本,自动,定时,可以附件发送,抄送,附有说明文件 (本脚本是python的2.7.x环境下可用)

PS(2013-03-27):最近这个脚本用到了公司的另个项目中,才发现有个bug:发件人配置之后,无法起作用。现在查明是 (sendername,senderpass)=getUserAndPass(EMAILHOME+r'/sender.list')应该为 (...
  • lifeiaidajia
  • lifeiaidajia
  • 2013-01-21 16:07
  • 10677

Python 发送邮件脚本

在一些场景中经常需要发送邮件, 像是持续集成和运维报警等. 而使用Python脚本能够很快捷方便得实现发送各种邮件的需求.这里就通过Python基于SMTP(Simple Mail Transfer Protocol)实现一套可以群发,Html内容和附件的脚本. 既然是要发送各种类型的邮件, 首先...
  • l2show
  • l2show
  • 2017-02-26 14:41
  • 2160

利用python发送邮件

下面的例子是QQ邮箱对QQ邮箱的,不知道其他邮箱有什么不同 (1)首先发送方的smtp服务需要打开,现在发送的时候需要授权码 点击生成授权码,可能要一些验证信息,通过后可以看到授权码,复制下来 (2)编写代码 # -*- coding:utf-8 -*- from email.mime...
  • chengan1993
  • chengan1993
  • 2016-09-20 09:58
  • 1855
    个人资料
    • 访问:126527次
    • 积分:3214
    • 等级:
    • 排名:第12600名
    • 原创:187篇
    • 转载:4篇
    • 译文:9篇
    • 评论:33条
    RUNNING|~_~|My web
    微信公众号
    课程设计、视频资源、有料趣文
    Worldhello


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