电脑开机就发送邮件python代码

邮件发送代码kaijitongzhi.py:

import smtplib
import socket
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# 获取本机计算机名称
hostname = socket.gethostname()
# 获取本机ip
ip = socket.gethostbyname(hostname)
#设置服务器所需信息 该部分需要修改
#outlook邮箱SMTP服务器地址
mail_host = 'smtp.qq.com'
#outlook邮箱用户名
mail_user = '81546954@qq.com'
#密码(部分邮箱如qq邮箱为授权码)
mail_pass = 'asdasdrhkrychiksawrekgbjah'  
#邮件发送方邮箱地址
sender = '81546954@qq.com'
#邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发
receivers = ['cnweapon@outlook.com']  
#以上部分需要修改
#设置email信息
#邮件内容设置
message = MIMEText('电脑开机','plain','utf-8')
#邮件主题       
message['Subject'] = ip
#发送方信息
message['From'] = sender
#接受方信息     
message['To'] = receivers[0]  
#登录并发送邮件
server = smtplib.SMTP(mail_host,587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login(mail_user,mail_pass)
server.sendmail(sender,receivers,message.as_string())
server.quit()
exit()

文件保存到c:\windows\system\(实际保存到其他地方都可以,只要后面运行时指明路径)
建立一个bat文件,文件内容:

python c:\windows\system\kaijitongzhi.py

把bat文件放到开机启动里面,位置在 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,然后每次开机会自动运行一次程序
过程中有一个很奇怪的问题,当我把kaijitongzhi.py程序放到system32中一直报

感觉是运行时的权限不足,查找原因网上有说法是这样的:

此问题是由于exe x86与x64的体系结构构建。 VS2012中的默认编译是ANYCPU,首选x86选项。
如果您的内部版本在x64平台上是默认版本,则应将其复制到c:\windows\syswow64。这是32位system32文件夹。或者应用程序应该移除偏好x86选项并重新编译。
无论哪种方式它不是你没有安装正确的框架的情况下,这是由于Windows上的Windows行为和编译配置。

获取真实的外网IP和时间信息


headers = { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36", }
url = 'https://www.baidu.com/s?ie=utf8&oe=utf8&wd=ip%E6%9F%A5%E8%AF%A2&tn=98010089_dg&ch=1'
def getIpAdress(url):
    page = requests.get(url,headers = headers)
    page.encoding = 'UTF-8-SIG'
    txt = page.text
    flag1 = txt.find("我的ip地址")
    tmp = txt[flag1:flag1+40]
    flag2 = tmp.find("地址")
    flag3 = tmp.find(" ")
    ip = tmp[flag2+2:flag3]
    adress = tmp[flag3+4:tmp.find("市")+1]
    return ip,adress

localtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #这里要import time
(ip,adress) = getIpAdress(url)
content = """
您的电脑已经开机
开机时间是:%s
网络IP:%s
位于:%s
"""%(localtime,ip,adress)