千家信息网

怎么用Python定时发送天气邮件

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要介绍"怎么用Python定时发送天气邮件"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用Python定时发送天气邮件"文章能帮助大家解决问题。
千家信息网最后更新 2024年11月11日怎么用Python定时发送天气邮件

这篇文章主要介绍"怎么用Python定时发送天气邮件"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用Python定时发送天气邮件"文章能帮助大家解决问题。

效果如图

一、获取天气

def getWeather1(city):    try:        appid = os.environ["TIANQI_APPID"]        appsecret = os.environ["TIANQI_APPSEC"]    except KeyError:        appid = 'x'x'x'x'  #www.tianqiapi.com申请的appid,有免费 api        appsecret = 'xxxx'  #在www.tiaSnqiapi.com申请的appsecret    url = 'https://tianqiapi.com/api?version=v1&city={city}&appid={appid}&appsecret={appsecret}'.format(city=city,                                                                                                        appid=appid,                                                                                                        appsecret=appsecret)    res = requests.get(url)    if res.json().get("errcode", 0) > 0:        print(res.json().get("errmsg"))        exit(0)    data = res.json()['data']    weather = {        'today': data[0],        'tomorrow': data[1],        'aftertomorrow': data[2]    }    today = weather['today']    tomorrow = weather['tomorrow']    aftertomorrow = weather['aftertomorrow']     today_avg = (int(today['tem1'][:-1]) + int(today['tem2'][:-1])) / 2    tomorrow_avg = (int(tomorrow['tem1'][:-1]) + int(tomorrow['tem2'][:-1])) / 2    wdc ='紫外线指数:'+today['index'][0]['level'] +'\n'+ \           '穿衣指数:'+today['index'][3]['desc']+'\n'    wdc += 'tips:'+today['air_tips']    today_w = '今天 {} {}/{} 风力:{} 空气指数: {}/{} 日出日落: {}/{}'.format(today['wea'], today['tem1'], today['tem2'],today['win_speed'],today['air'],                                                       today['air_level'], today['sunrise'], today['sunset'])     tomorrow_w = '明天 {} {}/{} 风力:{} 空气指数:{}/{} 日出日落: {}/{}'.format(tomorrow['wea'], tomorrow['tem1'], tomorrow['tem2'],tomorrow['win_speed'],tomorrow['air'],                                                              tomorrow['air_level'], tomorrow['sunrise'],                                                              tomorrow['sunset'])     aftertomorrow_w = '后天 {} {}/{} 风力:{} 空气指数:{}/{} 日出日落: {}/{}'.format(aftertomorrow['wea'], aftertomorrow['tem1'],                                                                   aftertomorrow['tem2'],aftertomorrow['win_speed'],aftertomorrow['air'],                                                                   aftertomorrow['air_level'], aftertomorrow['sunrise'],                                                                   aftertomorrow['sunset'])    todaytime = datetime.now()    starttime = datetime.strptime('2020-08-21','%Y-%m-%d')    days = (todaytime-starttime).days    todaydate = str(todaytime.year) + '年' + str(todaytime.month) + '月' + str(todaytime.day) + '日'    total = '早安!  亲爱的xx,xxxxx~愿你每天开开心心!\n'+ \            '今天是:'+todaydate+','+'是和xxx在一起的第'+str(days)+'天,mua~\n'+ \            '近日天气如下,xxx要注意保暖哦!\n'+ \            today_w + '\n' + wdc +'\n'+ \            tomorrow_w + '\n' + \            aftertomorrow_w    return total

二、获取金山词霸每日一句

def get_news():    # 获取金山词霸的每日一句的英文和翻译    url = "http://open.iciba.com/dsapi/"    r = requests.get(url)    content = r.json()['content']    note = r.json()['note']    news = content + '\n' + \            note    return str(news)

三、获取Sweet word

def getSweetWord():    url = 'https://chp.shadiao.app/api.php'    res = requests.get(url)    return res.text

四、发送邮件

def sendemail(toaddr='', message=''):    fromaddr = 'xxxxx@qq.com'  # 你的邮箱    password = 'xxxxxfslfbfgg'  # 你的密码,注意不是qq密码    smtp_server = 'smtp.qq.com'  # smtp地址    msg = MIMEText(message, 'plain', 'utf-8')    msg['From'] = _format_addr('xxx <%s>' % fromaddr)    msg['To'] = _format_addr('xxx <%s>' % toaddr)    todaytime = datetime.now()    starttime = datetime.strptime('2020-08-21', '%Y-%m-%d')    days = (todaytime - starttime).days    emailtitle= '爱你的第'+str(days)+'天'    msg['Subject'] = Header(emailtitle, 'utf-8').encode()    server = smtplib.SMTP_SSL(smtp_server, 465)    server.set_debuglevel(1)    server.login(fromaddr, password)    server.sendmail(fromaddr, [toaddr], msg.as_string())    server.quit()    return

五、组织信息,并发送

def dailymorning():     message = getWeather1('xxx') + '\n' + \              get_news() + '\n' + \              getSweetWord() + '\n' + \                '来自最爱你xxx'     receivers = [['xxxx@qq.com'], ['xxxxxx@qq.com']]    for i in range(len(receivers)):        dailyemail.sendemail(toaddr=receivers[i], message=message)        print('send receiver[{}] success'.format(receivers[i]))

六、win10系统设置定时启动程序。

关于"怎么用Python定时发送天气邮件"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0