前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 ># Py编写自动化脚本每天发送邮件提醒天气(舔狗必备)

# Py编写自动化脚本每天发送邮件提醒天气(舔狗必备)

原创
作者头像
Symbol125
发布2022-11-11 14:45:28
3240
发布2022-11-11 14:45:28
举报
文章被收录于专栏:JJ的笔记

首先获取天气api

我这里使用的是和风天气api

先注册一个然后控制台保存自己的唯一key下面要用!!

然后

重点

很多之前的教程都是v6所以已经不适用了

这是正确的链接格式

代码语言:txt
复制
https://devapi.qweather.com/v7/weather/3d?location=101010100&key=自己的key&gzip=n

后面gzip=n是因为请求后是zip格式加上这个会自动解压缩

location是地区id,自己网上查一下就有

在有了数据后开始编写脚本:

py拿到get拿到数据后需要json处理一下

并且获取json中的数据是需要用'name'这种格式的上面是例子

自己拿到数据后拼接一下就行

编写发送的脚本:

代码语言:txt
复制
if __name__ == "__main__":
    # 发信方的信息:发信邮箱,QQ 邮箱授权码
    from_addr = 'zzzzyzzzz@qq.com'
    password = '自己的key'
    # 收信方邮箱
    to_addr = '自己的@qq.com,别人的qq邮箱,'
    # 发信服务器
    smtp_server = 'smtp.qq.com'
    # 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
    con = get_weather_data()
    msg = MIMEText(con)
    # 邮件头信息
    msg['From'] = from_addr
    msg['To'] = to_addr
    msg['Subject'] = Header('Have a good day!') //这个是邮件标题
    # 开启发信服务,这里使用的是加密传输
    server= smtplib.SMTP_SSL("smtp.qq.com",465)
    server.login(from_addr,password)
    server.sendmail(from_addr,to_addr.split(','),msg.as_string())
    print("发送成功")

由于msgto接受的是字符串

但senmail第二个参数是数组,这里需要.split(',')一下。这是一个坑

这个是开启smtp服务的过程自己在邮箱开一下,这里用qq做例子,我使用的是第二个

记着保存自己的key!!

最后:

自动每日准时发送需要一个准时的舔狗

代码语言:txt
复制
																																	或者 看我上一篇文章

下面贴完整的代码:

代码语言:python
代码运行次数:0
复制
import time
from email.header import Header

import requests
import smtplib

from email.mime.text import MIMEText
//地区自己设置一下
url='https://devapi.qweather.com/v7/weather/3d?location=101010100&key=自己的Keyf&gzip=n'

today_time = time.strftime('%Y-%m-%d', time.localtime(time.time()))
def get_weather_data():
    res = requests.get(url).json()
    # res.encoding = 'utf-8'
    result = res['daily'][0]
    # print(result)
    # location = '地区'
    city = 'Have a good day ❛‿˂̵✧ \n'
    names = ['城市', '时间', '天气状况', '最高温', '最低温', '日出', '日落']
    date = result['fxDate']+'  '
    cond = result['textDay'] + '\n'
    max = '最高温' + result['tempMax']+'度'+' '
    min =  '最低温' + result['tempMin'] +'度'+'\n'
    sr = '日出' + result['sunrise']+'  '
    ss = '日落' + result['sunset']
    alert = ''
    if('雨' in cond):
        alert = '可能下雨记得带伞!!\n'
    res = city+date+cond+alert+max+min+sr+ss
    print(res)
    return res


if __name__ == "__main__":
    # 发信方的信息:发信邮箱,QQ 邮箱授权码
    from_addr = '自己qq@qq.com'
    password = 'key'
    # 收信方邮箱
    to_addr = 'qq邮箱'
    # 发信服务器
    smtp_server = 'smtp.qq.com'
    # 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
    con = get_weather_data()
    msg = MIMEText(con)
    # 邮件头信息
    msg['From'] = from_addr
    msg['To'] = to_addr
    msg['Subject'] = Header('Have a good day!')
    # 开启发信服务,这里使用的是加密传输
    server= smtplib.SMTP_SSL("smtp.qq.com",465)
    server.login(from_addr,password)
    server.sendmail(from_addr,to_addr.split(','),msg.as_string())
    print("发送成功")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在有了数据后开始编写脚本:
    • 编写发送的脚本:
    • 记着保存自己的key!!
    • 自动每日准时发送需要一个准时的舔狗
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档