做一个合格男友

  • 需要用到的头文件
  • 获取天气
  • 发送邮件
  • 定时发送
  • 每日一语
  • 完整项目代码

需要用到的头文件

import requests
import datetime
import time
import json
import re
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

获取天气

免费的天气API:链接直达

def getWeather(city):appid = "网站注册的appid"appsecret = "在网站注册中获取"temp = requests.get(url="https://v0.yiketianqi.com/api?version=v61&appid=" + appid +"&appsecret=" + appsecret +"&city=" + city,timeout=5)weather = temp.json()['wea'] + "  " + temp.json()['tem'] + "度"  # 天气 + 温度air_tips = temp.json()['air_tips']                               # 小贴士today = temp.json()['date'] + "   " + temp.json()['week']        # 今天时间update = temp.json()['update_time']                              # 温度更新时间hWather = temp.json()['tem1'] + "度"                             # 高温lWather = temp.json()['tem2'] + "度"                             # 低温value = city + "天气和温度:" + weather + "\n" + \"当前时间:" + today + "\n" + \"最高温度:" + hWather + "\n" + \"最低温度:" + lWather + "\n" + \"天气更新时间:" + update + "\n" + \"小贴士:" + air_tipsreturn value

除了appid和appsecret 需要改成自己的其余的不需要改动

发送邮件

def sendMail(msg, text):# 发送邮件的邮箱sender = '用来发送邮件的邮箱@qq.com'# 接受邮件的邮箱to_list = ['发送目标邮箱1@qq.com','发送目标邮箱2@qq.com'#一封发送给自己一封发送给女朋友#以确保发送内容没有错误以及定时发送是否执行]subject = text# 创建邮箱em = MIMEMultipart()em['subject'] = subjectem['From'] = senderem['To'] = ",".join(to_list)# 邮件的内容content = MIMEText(msg)em.attach(content)# 发送邮件# 1、连接服务器# 25端口已经被云服务器商关闭了,所以只能用465端口了smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)# 2、登录smtp.login(sender, "qq邮箱授权码")print("登录服务器成功")# 3、发邮件smtp.send_message(em)print("发送邮件成功")# 4、关闭连接smtp.close()

具体操作可以参考我的另一篇文章:Python发送邮箱

定时发送

def timeSend():startTime = datetime.datetime.now()if startTime.hour == 7 and startTime.minute <= 1:  # 每天9点定时运行执行晚上函数hello = everyDayHello()sendMail(getWeather('地区') + "\n\n"  + str(everyDayNight())+"\n\n" + hello[0]['en'] + "\n" + hello[0]['zh'], '来至男友每天早上的关爱')print("早上信息已发送")time.sleep(80)if startTime.hour == 22 and startTime.minute <= 1:  # 每天20点定时运行执行晚上函数hello = everyDayHello()sendMail(getWeather('地区') + "\n\n"  + str(everyDayNight())+"\n\n" + hello[0]['en'] + "\n" + hello[0]['zh'], '来至男友每天晚上的关爱')print("晚上信息已发送")time.sleep(80)def main():print("start")while True:timeSend()time.sleep(30)

运行过后需要测试一下是否能准确时间发送内容可以通过调整三个time.sleep的时间来测试

每日一语

这里我用的api是天行数据,同样免费:链接直达

key = '你自己的key'
def everyDayMorning():temp = requests.get('http://api.tianapi.com/txapi/zaoan/index?key='+key)return temp.json()["newslist"][0]['content']
# 晚安函数def everyDayNight():temp = requests.get('http://api.tianapi.com/txapi/wanan/index?key='+key)return temp.json()["newslist"][0]['content']def everyDayHello():temp = requests.get('http://api.tianapi.com/txapi/ensentence/index?key='+key)return temp.json()["newslist"]

完整项目代码

import requests
import datetime
import time
import json
import re
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart# 邮箱配置
def sendMail(msg, text):# 发送邮件的邮箱sender = '用来发送邮件的邮箱@qq.com'# 接受邮件的邮箱to_list = ['发送目标邮箱1@qq.com','发送目标邮箱2@qq.com'#一封发送给自己一封发送给女朋友#以确保发送内容没有错误以及定时发送是否执行]subject = text# 创建邮箱em = MIMEMultipart()em['subject'] = subjectem['From'] = senderem['To'] = ",".join(to_list)# 邮件的内容content = MIMEText(msg)em.attach(content)# 发送邮件# 1、连接服务器# 25端口已经被云服务器商关闭了,所以只能用465端口了smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)# 2、登录smtp.login(sender, "qq邮箱授权码")print("登录服务器成功")# 3、发邮件smtp.send_message(em)print("发送邮件成功")# 4、关闭连接smtp.close()#天气模块
def getWeather(city):appid = "网站注册的appid"appsecret = "在网站注册中获取"temp = requests.get(url="https://v0.yiketianqi.com/api?version=v61&appid=" + appid +"&appsecret=" + appsecret +"&city=" + city,timeout=5)weather = temp.json()['wea'] + "  " + temp.json()['tem'] + "度"  # 天气 + 温度air_tips = temp.json()['air_tips']                               # 小贴士today = temp.json()['date'] + "   " + temp.json()['week']        # 今天时间update = temp.json()['update_time']                              # 温度更新时间hWather = temp.json()['tem1'] + "度"                             # 高温lWather = temp.json()['tem2'] + "度"                             # 低温value = city + "天气和温度:" + weather + "\n" + \"当前时间:" + today + "\n" + \"最高温度:" + hWather + "\n" + \"最低温度:" + lWather + "\n" + \"天气更新时间:" + update + "\n" + \"小贴士:" + air_tipsreturn value# 语句函数
key = '你自己的key'
def everyDayMorning():temp = requests.get('http://api.tianapi.com/txapi/zaoan/index?key='+key)return temp.json()["newslist"][0]['content']def everyDayNight():temp = requests.get('http://api.tianapi.com/txapi/wanan/index?key='+key)return temp.json()["newslist"][0]['content']def everyDayHello():temp = requests.get('http://api.tianapi.com/txapi/ensentence/index?key='+key)return temp.json()["newslist"]# 定时发送
def timeSend():startTime = datetime.datetime.now()if startTime.hour == 7 and startTime.minute <= 1:  # 每天9点定时运行执行晚上函数hello = everyDayHello()sendMail(getWeather('地区') + "\n\n"  + str(everyDayNight())+"\n\n" + hello[0]['en'] + "\n" + hello[0]['zh'], '来至男友每天早上的关爱')print("早上信息已发送")time.sleep(80)if startTime.hour == 22 and startTime.minute <= 1:  # 每天20点定时运行执行晚上函数hello = everyDayHello()sendMail(getWeather('地区') + "\n\n"  + str(everyDayNight())+"\n\n" + hello[0]['en'] + "\n" + hello[0]['zh'], '来至男友每天晚上的关爱')print("晚上信息已发送")time.sleep(80)#主函数
def main():while True:timeSend()time.sleep(10)if __name__ == "__main__":main()

祝各位网友情节人快乐,牛年发大财,程序无BUG!!

做一个合格的男友,用python制作每天定时给女朋友发送邮箱问候相关推荐

  1. 艾伟也谈项目管理,如何做一个合格的项目经理

    项目经理这个角色说大不大,说小也不小.在大公司,项目经理这样的角色可能存在不计其数,他们很多都是寄托于项目的存在而生,项目的完成而终:但对于一些小作坊的软件公司,项目经理一职很多时候是一个长期持有的过 ...

  2. 要怎么样做一个合格点的程序猿呢?

    要怎么样做一个合格点的程序猿呢? 把编程当做人生来看,磨刀不误砍柴工.看完设计模式以后,就算以后设计不出很精巧的模式,我也会先仔细想好,仔细研究透了需求,分析透了设计,再写代码,不然的话,后期的维护, ...

  3. 论坛软文撰写技巧之做一个合格的标题党

    论坛软文撰写技巧之做一个合格的标题党 好的标题是论坛营销成功的关键 好的标题是论坛营销成功的关键,这话不是空穴来风. 2008年四川地震后全国人民都在心系灾区的同胞并踊跃的捐款,而王石和他的万科集团因 ...

  4. 公开课:如何做一个合格的网络编辑

    摘要 互联网的高速发展,催生了许多热门职业.如常规的编辑岗位,因为加上了互联网的标签而多了更多属性.本季<腾讯职播间>倾力打造互联网热门职位揭秘课程,为想要进入互联网工作的你,提供最有力的 ...

  5. 做一个合格的技术总监

    做一个合格的技术总监 1.       技术总监的定位 企业内负责技术的最高负责人, * 长期技术方向(战略性) * 短期技术方向(战术性) * 管理研究对公司经营活动和营利的影响 * 公司中使用的软 ...

  6. 做一个合格的前端,gulp资源大集合

    承接前一篇<做一个合格的前端,gulp自动化构建工具入门教程>故而整理了如下gulp插件资源大全. **[我的新作观点网:http://www.guandn.com (观点网是一个猎获新奇 ...

  7. 自媒体怎么做搬运?怎样做一个合格的自媒体视频搬运工?

    今天不聊什么别的东西,就聊一聊自媒体视频,怎样才能更好的搬运更有利于我们操作与赚到自己想要的那部分钱. 股神巴菲特曾经说过一个非常经典的话:人生就像滚雪球一样,重要的是发现构思的雪和一道够长的山坡,如 ...

  8. Python 关于网站更新消息并发送邮箱通知

    Python 关于网站更新消息并发送邮箱通知: 1.目的:笔者由于需要及时收到教育厅官网推送的消息,又由于笔者需要准备应考,所以特写一个脚本来检测网站最新的发布. 2.语言:python3 开发编译器 ...

  9. 用html5做一个简单网页_用Python做一个简单的翻译工具

    编程本身是跟年龄无关的一件事,不论你现在是十四五岁,还是四五十岁,如果你热爱它,并且愿意持续投入其中,必定会有所收获. 本文就来自编程教室一位"小"读者的投稿(互助学习1群里的同学 ...

最新文章

  1. 多线激光雷达~三维建图
  2. R Learnilng 十八讲13-17
  3. python opengl 入门
  4. JAVA取数两个数组交集,考虑重复和不重复元素
  5. 算法导论笔记:13-02红黑树插入
  6. Splash 占位图适配 全面屏笔记
  7. 用python进行股票数据分析_利用python进行股票数据分析
  8. php中将url中的参数含有%20进行转换或解码
  9. 【股价预测】基于matlab遗传算法优化BP神经网络预测股价【含Matlab源码 1250期】
  10. Scala下载和安装
  11. 编程猫编程平台的使用介绍
  12. python中id 是什么意思_python中的id函数是什么意思?
  13. java找不到符号或方法,java 找不到符号解决方法
  14. Ubuntu桌面显示或隐藏回收站等图标
  15. 【Vue项目复习笔记】详情页的展示
  16. Unity-解决报错Shader error in ‘EffectCore/alphaBlend_glow‘: ‘‘ : ‘UNITY_PASS_FORWARDBASE‘ already define
  17. win11激活office出问题
  18. mysql查询出当前年份的12个月
  19. 给予员工更好的激励- - 俞敏洪
  20. vue在微信里面的兼容问题_Vue在 iOS 微信浏览器下不能播放

热门文章

  1. 2023年快到了,就简单用python写个对联吧
  2. 一个在线编辑可视化LaTex的网址
  3. 【开源项目】历史数据迁移
  4. 同一台电脑同时使用gitHub和gitLab
  5. fag oracle 审计_oracle学习
  6. ROS之map_server 源码解析
  7. 神、上帝以及老天爷(错位排序)
  8. 中国新能源汽车行业竞争状况与产销规模预测报告2022版
  9. 兴业银行电子账单读取
  10. 在SqlServer中,教你如何修改列名