• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

python控制随机间隔一段时间发送邮件、消息或弹出窗口

python 水墨上仙 1235次浏览

python控制随机间隔一段时间发送邮件、消息或弹出窗口

""" If you need to do something irregularly, randomly during the weekday, you
often forget. This script gives you mail, sms or popup window indefinitely in
random interval to remind you of doing it. It runs forever. If you want to
send emails, uncomment the row sendMail() and fill variable me, to, smtp,
name, login in function sendMail(). """

# -*- coding: utf-8 -*-
import time, random, sys, os, smtplib

if sys.version < '3':
    from Tkinter import *
else:
    from tkinter import *

# ----------------- variables ----------------------------------
mytimefrom=6        # from 6 pm
mytimeto=22         # to 22  am
mydelayfrom=1*3600    # random delay in secs from
mydelayto=5*3600      # random delay in secs to
randommsgnext="randommsgnext.txt"     # place to save time of next message

# ----------------- defs ----------------------------------

def showMessage():
    # show reminder message window
    root=Tk()
    x = (root.winfo_screenwidth() - root.winfo_reqwidth()) / 2
    y = (root.winfo_screenheight() - root.winfo_reqheight()) / 2
    root.geometry("+%d+%d" % (x, y))
    root.protocol('WM_TAKE_FOCUS', root.update )
    root.wait_visibility(root)
    root.attributes('-topmost',1)
    label=Label(root, text="Do what you should do.").pack({"side": "left"})
    button=Button(text="OK", width="10", command=lambda:root.destroy()).pack()
    root.mainloop()

def sendMail():
    # sends mail
    s = smtplib.SMTP(smtp)
    s.login(name, password)

    subject="Reminder"
    fromaddr=fromadr
    toaddrs= [toadr]
    text= "Do what you should do.\n%s" % time.ctime()
    msg = ("Subject: %s\nFrom: %s\nTo: %s\n\n%s" % (subject, fromaddr, ", ".join(toaddrs), text))

    s.sendmail(fromaddr, toaddrs, msg)
    s.quit()

def sendSMS():
    # sends sms
    message={'user': user, 'password': password, 'sender': fromnumber, 'recipient': tonumber, 'message': "goodbye"}
    if sys.version < '3':
        import urllib
        params = urllib.urlencode(message)
        f=urllib.urlopen(http, params)
    else:
        import urllib.parse
        import urllib.request
        params = urllib.parse.urlencode(message)
        f = urllib.request.urlopen(http % params)

def checktime(nowtime):
    # do not remind at night
    if nowtime.tm_hour<=mytimefrom or nowtime.tm_hour>=mytimeto:
        return False
    return True

def timenextwritef():
    # save next time in file
    f=open(randommsgnext,"a")
    timenext=time.mktime (nowtime)+delaysec
    f.write(time.ctime(timenext)+"\n")
    f.close()
    os.utime(randommsgnext, None)

# ----------------- main app ----------------------------------

nowtime=time.localtime()
os.chdir(os.path.dirname(sys.argv[0]))  # to have "randommsgnext" in the same dir

while True:
    delaysec=random.randint(mydelayfrom,mydelayto)
    timenextwritef()
    time.sleep(delaysec)
    nowtime=time.localtime()
    if checktime(nowtime):
#        sendSMS()
#        sendMail()    # uncomment if you want sending mails
        showMessage()


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python控制随机间隔一段时间发送邮件、消息或弹出窗口
喜欢 (0)
加载中……