本想直接做发送短信程序,但是阿里云短信模板要求必须有程序
那就先做一个邮件程序
原理很简单:
1.编写邮件发送程序,一运行就发送
2.将此程序设置为开机自启动
1.程序
#!/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time
def email_se(url, text):
"""
难点:新浪邮箱和网易邮箱都要求发件人名称与message[‘From’]的内容一致,
所以message[‘From’]的内容中不能用‘utf-8’
:param url: 收件人地址
:param text:要发送的字符串
:return: 无
"""
# 第三方 SMTP 服务
mail_host = 'smtp.sina.com'
mail_user = '用户名'
mail_pass = '密码'
sender = 'buct_report@sina.com'
receivers = url # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
message = MIMEText(text, 'html', 'utf-8') # 邮件内容
message['From'] = Header('report@sina.com') # 邮件发送人
message['To'] = Header('家庭电脑通知', 'utf-8') # 收件人名称
subject = '电脑打开时间' # 主题
message['Subject'] = Header(subject, 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 无法发送邮件")
if __name__ == '__main__':
# 一个url只能发一个,要for循环发送
# for url in url_list:
# pass
localtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
email_se('571028495@qq.com', str(localtime)+'您的电脑已经打开,请注意回去揍孩子(doge)')
之后打包文件成exe格式,在pycharm中只需要点开Terminal,输入
pyinstaller -F xxx.py(xxx.py,打包的文件)
打包好的文件在项目文件的dist文件夹中
2. 设置
此部分参考Windows设置自己的程序开机自动启动的文章,我们选用最简单的方法:将程序快捷方式拖到启动文件夹
1.win+r打开命令框
2.输入
shell:startup
点击回车
3.会进入启动文件夹,将程序快捷方式拖进来即可。
邮件示例:
3.注意:
1.如果之前没有打包过文件夹,记得安装pyinstaller,
安装指令:pip install pyinstaller
2.此程序若需要更改目标用户,需更改程序代码,没有相应配置文件。
4.短信程序写不了了
阿里云、百度云、华为云都需要提供应用商店内可供下载的程序,审核很严格,起码csdn里的程序资源不行。我就写一个这么简单的程序,估计进不去,就放弃了。感觉几乎不对个人用户开放短信平台了,麻烦。
如果有大佬知道有什么好用的短信平台也可以说一下,万分感谢。