• Python使用yagmail超简单发送邮件、keyring读取密钥、schedule定时任务、imbox操作


    yagmail 实现发邮件,以网页邮箱为例

     

     

    yagmail 可以超简单的来实现自动发邮件功能。

    安装

    pip install yagmail   
    pip install keyring
    pip install schedule
    pip install imbox
    
    或者
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/  包名称
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/  包名称

    发送邮件例子

    import yagmail
    
    #链接邮箱服务器
    yag = yagmail.SMTP( user="user@126.com", password="1234", host='smtp.126.com')
    
    # 邮箱正文
    contents = ['第一段内容',
                '第二段内容'
                ]
    
    # 发送邮件
    yag.send('test@126.com', '邮件主题',  contents)
    #关闭
    yag.close()

    给多个用户群发送邮件

    # 群发邮件、只需要将接收邮箱 变成一个list即可
    yag.send(['aa@126.com','bb@qq.com','cc@gmail.com'], '群发邮件',  contents)

    读取密钥形式发送,代码中不明文密码(安全,推荐)

    打开Python shell将账号密码注册到系统(只需要操作一次)

    定时任务scedule

    python中有一个轻量级的定时任务调度的库:schedule。他可以完成每分钟,每小时,每天,周几,特定日期的定时任务。因此十分方便我们执行一些轻量级的定时任务。

    代码如下:

    import schedule
    import time
    
    def job():
        print("I'm working...")
    
    schedule.every(10).minutes.do(job)
    schedule.every().hour.do(job)
    schedule.every().day.at("09:30").do(job)
    schedule.every(5).to(10).days.do(job)
    schedule.every().monday.do(job)
    schedule.every().wednesday.at("13:15").do(job)
     
    while True:
        schedule.run_pending()
        time.sleep(1)
    上面的意思就是:

    每隔十分钟执行一次任务

    每隔一小时执行一次任务

    每天的10:30执行一次任务

    每隔5到10天执行一次任务

    每周一的这个时候执行一次任务

    每周三13:15执行一次任务

    run_pending:运行所有可以运行的任务

    当然,如果函数中带有参数怎么办呢?

    很简单,如下所示:

    import schedule
    import time
    
    def job(name):
        print("her name is : ", name)
     
    name = 'MyJob'
    schedule.every(10).minutes.do(job, name)
    schedule.every().hour.do(job, name)
    schedule.every().day.at("10:30").do(job, name)
    schedule.every(5).to(10).days.do(job, name)
    schedule.every().monday.do(job, name)
    schedule.every().wednesday.at("13:15").do(job, name)
     
    while True:
        schedule.run_pending()
        time.sleep(1)
  • 相关阅读:
    kubernetes 配置示例 Lifecycle
    Kubernetes 集群部署(5) kubectl 常用命令
    Kubernetes 配置示例 一个Pod 包含多个容器
    实现lighttpd+tomcat
    tomcat解决中文乱码问题
    linux安装tomcat
    zz Tomcat+JSP经典配置实例
    jdbc查询大量数据内存溢出的解决方法
    汉明距离
    log4j乱码问题
  • 原文地址:https://www.cnblogs.com/zwnsyw/p/13536326.html
Copyright © 2020-2023  润新知