关于python骚操作,电脑登录进行邮件发送

再次更新一篇文章(最近纯属无聊)

背景:大概在19年3月份左右吧,当时做了一个仓库管理系统,每次利用代码运行才能正常使用本机电脑做服务,怕电脑被关机,别人不会启用,虽然有文档,当时就骚操作利用windows自带任务写了一个脚本自动运行,太久了忘了

前段时间呢,又开始瞎研究起来,因为有当时的骚操作,脑子里又出现另外一个骚操作,再整点事情呗

思路:windows任务+bat脚本+python发送邮件,实现电脑登录自动实现发送邮件

python邮件发送:

需要163或者QQ之类的邮箱开通SMTP服务,我用到的是163邮箱作为发送邮箱,在邮箱设置中开通POP3/SMTP服务,如图:

后续的话就是准备python发送邮件的代码了,代码部分如下:

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import time

if __name__=='__main__':
    fromaddr='*****@163.com'#发送
    password='*****'

    # 读取接收文件的邮箱,邮箱单独一行
    f=open(r'F:\run\toemail.txt', 'r')
    list1=f.readlines()
    for i in range(len(list1)):
        list1[i]=list1[i].strip('\n')
    f.close()
    toaddrs=list1
    
    #用toemail.txt维护发送邮箱,也可以直接用下面列表写死收集人邮箱
    #toaddrs=['*****@qq.com','*****@dingtalk.com']#接收list,用','.join(toaddrs)

    
    subject = '邮件提示'
    #content='hello,this is email content'#内容
    date2 = (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    content="电脑已登录,登录时间:"+date2


    # 打开文件,同目录下新建test.txt文件,存发历史数据
    fo = open("test.txt", "r+")
    #print ("文件名: ", fo.name)
    # 在文件末尾写入一行
    fo.seek(0, 2)
    line = fo.write( content + '\n')
    fo.close()
    '''
    fo.seek(0,0)
    for index in range(6):
        line = next(fo)
        print ("文件行号 %d - %s" % (index, line))
    '''
    
    # 格式也可以用拉易网,我偷懒没弄
    # 拉易网:https://www.drageasy.com/services.html
    textApart2 =MIMEText(str(content)+'\n历史登录记录可查看附件.')
    
    textFile='test.txt'
    textApart=MIMEApplication(open(textFile,'rb').read())
    #textApart=MIMEText(open(r'F:\run\test.txt', 'rb').read(), 'base64', 'utf-8')
    textApart.add_header("Content-Disposition",'attachment',filename=textFile)

    m = MIMEMultipart()
    #m.attach(content, 'plain', 'utf-8')
    m.attach(textApart)
    m.attach(textApart2)
    m['Subject'] = Header(u'您电脑已被登录', 'utf8').encode()
    m['From'] = fromaddr
    m['To'] = ','.join(toaddrs)

    try:
            server = smtplib.SMTP('smtp.163.com',25)
            #打印发送过程
            #server.set_debuglevel(1)
            server.login(fromaddr,password)
            server.sendmail(fromaddr, toaddrs, m.as_string())
            #发送成功
            #print('success')
            server.quit()
    except smtplib.SMTPException as e:
            print('error:',e) #打印错误

可以把#print('success')注释拿掉进行测试发送,查看是否能接收到

bat脚本

邮件发送没有问题后,后面就是准备bat脚本文件,用来执行代码

脚本如下:

@echo off  
cmd/c  "cd/d F:\run &&python 7.py"
@exit

“cd/d F:\run &&python 7.py” cd/d 后面的python邮件发送的目录,&&后面是执行python邮件发送,我命名是7.py(我比较随意)

cmd/c执行结束后会关闭cmd窗口,如果不需要关闭,可以把/c换成/k

双击脚本,校验是否执行成功

windows任务

右击电脑--点击属性--点击任务计划程序

可以创建基本任务,也可以选择创建任务

创建任务,选择只在用户登录时运行,选择触发器,新建触发器,根据自己需求进行维护(记得勾选已启用哦,我自己的禁用了任务)

选择操作,新建操作,进行选择bat执行python发送邮件处理的脚本

选择条件,勾选电源下的选项

后续还有设置中几个选项,根据情况进行勾选确认即可。

测试

任务新建完成后,win键+L进行锁屏,然后进行登录,查看是否发送邮件

纯属娱乐~有兴趣的可以尝试一下哦~

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值