发送天气预报邮件

使用 sendemail 发送天气信息

看树莓派的书,发现可以使用 sendemail 发送天气信息,闲来无事,折腾一波

获取天气数据

在这里可以使用和风天气开发者 ,注册并获取 key

进入开发文档,可以使用获取常规天气数据的接口(免费版)

https://free-api.heweather.net/s6/weather/{weather-type}?{parameters}

{weather-type} 代表不同的天气数据类型,必选。使用以下值:

weather-type 值描述
now实况天气
forecast3-10天预报
hourly逐小时预报
lifestyle生活指数

{parameters} 代表请求参数,包括必选和可选参数。所有请求参数使用 & 进行分隔,参数值存在中文或特殊字符的情况,需要对参数进行 url encode

parameters 值描述描述
location需要查询的城市或地区(经纬度 / 城市名 [拼音、汉字] /IP 等)必选
lang多语言,可以不使用该参数,默认为简体中文选填
unit单位选择,公制(m)或英制(i),默认为公制单位选填
key用户认证key必填

具体请自行查看和风天气API

API 返回的数据是 json 字符串,需要对数据进行解析,这里可以安装jq工具

> sudo apt-get install jq -y

以下是获取天气数据的代码

#!/bin/bash
# Weather Data
CITY=hefei
TOKEN=和风KEY
WEATHER=$(curl "https://free-api.heweather.net/s6/weather/lifestyle?location=${CITY}&key=${TOKEN}")
SUGGESTIONS=$(echo ${WEATHER} | jq -r '.HeWeather6[0].lifestyle| values[].txt')
echo ${SUGGESTIONS}

安装 sendemail

可以直接使用apt-get安装sendemail,并很有可能需要安装一些依赖

> sudo apt-get install sendemail -y
> sudo apt-get install libio-socket-ssl-perl libnet-ssleay-perl -y

发送email

#!/bin/bash
#Email Send Test
SERVER="smtp.sina.com:22"
FROM=""
TO=""
SUBJECT="test"
MESSAGE="test_content"
CHARSET="utf-8"
USERNAME=""
PASSWORD=""

sendemail \
 -f ${FROM} \
 -t ${TO} \
 -u ${SUBJECT} \
 -s ${SERVER} \
 -m ${MESSAGE} \
 -xu ${USERNAME} \
 -xp ${PASSWORD} \
 -v -o message-charset=${CHARSET}

各参数对应的内容如下:

-f:           表示发送者的邮箱
-t:           表示接收者的邮箱
-s:           表示SMTP的服务器的域名或者IP,也可以加端口号 域名:port
-u:           表示邮件主题
-m:           表示的内容
-xu:          表示SMTP验证的用户名(也就是登录邮箱的用户名)
-xp:          表示SMTP验证的密码(也就是登录邮箱的密码)
-cc:          表示抄送
-bcc:         表示暗抄送
-a:           后加文件名,会以附件的形式发送
-o message-charset=utf8             邮件内容的编码
-o message-content-type=html        邮件内容的格式
-o message-file=a.txt               把文件内容以邮件正文发出

整理如下:

#!/bin/bash
# Weather Data
CITY=hefei
TOKEN=和风KEY
WEATHER=$(curl "https://free-api.heweather.net/s6/weather/lifestyle?location=${CITY}&key=${TOKEN}")
SUGGESTIONS=$(echo ${WEATHER} | jq -r '.HeWeather6[0].lifestyle| values[].txt')
echo ${SUGGESTIONS}

#Email Send
SERVER="smtp.sina.com:22"
FROM=""
TO=""
SUBJECT="天气预报来啦"
MESSAGE=${SUGGESTIONS}
CHARSET="utf-8"
USERNAME=""
PASSWORD=""

sendemail \
 -f ${FROM} \
 -t ${TO} \
 -u ${SUBJECT} \
 -s ${SERVER} \
 -m ${MESSAGE} \
 -xu ${USERNAME} \
 -xp ${PASSWORD} \
 -v -o message-charset=${CHARSET}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值