#!/usr/bin/env python3 # -- coding:utf-8 -- # @Author: markushammered@gmail.com # @Development Tool: PyCharm # @Create Time: 2021/12/16 # @File Name: sendmail.py import sys import smtplib from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import MIMEText from core.logger import Logger from core.language import Language from core.information import WeatherInfo from core.read_config import read_config from lib.hitokoto import hitokoto class Mail: def __init__(self): self.settings = read_config() self.language = Language() self.enableSSL = self.settings[2]['SSL'] self.server = self.settings[0]['server'] self.port = self.settings[0]['port'] self.password = self.settings[0]['password'] self.sender = self.settings[0]['sender'] self.receiver = self.settings[1]['receiver'] self.city_name = self.settings[3]['city-name'] self.message = MIMEMultipart('related') self.message['From'] = Header('QWeather') # 发件人名称 self.message['To'] = Header('All allowed User') # 收件人显示名称 self.hitokoto = hitokoto() # 一言 if self.enableSSL: self.smtp = smtplib.SMTP_SSL(self.server, self.port) # 登录服务器 使用SSL连接 else: self.smtp = smtplib.SMTP(self.server, self.port) # 登录邮箱服务器 不使用SSL连接 def dev_version(self): """ 开发者版本 :return: """ dev_weather = WeatherInfo().dev_version() dates = dev_weather[0] day_weathers = dev_weather[1] night_weathers = dev_weather[2] highest_temps = dev_weather[3] lowest_temps = dev_weather[4] icons = dev_weather[5] sunset = dev_weather[6] sunrise = dev_weather[7] humidity = dev_weather[8] wind_speed = dev_weather[9] wind_scale = dev_weather[10] wind_dir = dev_weather[11] uv_index = dev_weather[12] cloud = dev_weather[13] pressure = dev_weather[14] vis = dev_weather[15] mail_html = f"""
地区:{self.city_name}
发送者:{self.sender}
| | 日期 | | 天气 | | 最低温度 | | 最高温度 |
|---|---|---|---|
| 今天 | {day_weathers[0]} | {lowest_temps[0]}℃ | {highest_temps[0]}℃ |
| {dates[1]} | {day_weathers[1]} | {lowest_temps[1]}℃ | {highest_temps[1]}℃ |
| {dates[2]} | {day_weathers[2]} | {lowest_temps[2]}℃ | {highest_temps[2]}℃ |
| {dates[3]} | {day_weathers[3]} | {lowest_temps[3]}℃ | {highest_temps[3]}℃ |
| {dates[4]} | {day_weathers[4]} | {lowest_temps[4]}℃ | {highest_temps[4]}℃ |
| {dates[5]} | {day_weathers[5]} | {lowest_temps[5]}℃ | {highest_temps[5]}℃ |
| {dates[6]} | {day_weathers[6]} | {lowest_temps[6]}℃ | {highest_temps[6]}℃ |
| 风速/级/向 | 湿度 | 紫外线 |
|---|---|---|
| {wind_speed}m/s {wind_scale} {wind_dir} | {humidity}% | {uv_index} |
| 能见度 | 压强 | 云量 |
| {vis}km | {pressure}hPa | {cloud}% |
| {sunrise} | --------------- | {sunset} |
{self.hitokoto}
地区:{self.city_name}
发送者:{self.sender}
| | 日期 | | 天气 | | 最低温度 | | 最高温度 |
|---|---|---|---|
| 今天 | {day_weathers[0]} | {lowest_temps[0]}℃ | {highest_temps[0]}℃ |
| {dates[1]} | {day_weathers[1]} | {lowest_temps[1]}℃ | {highest_temps[1]}℃ |
| {dates[2]} | {day_weathers[2]} | {lowest_temps[2]}℃ | {highest_temps[2]}℃ |
| 风速/级/向 | 湿度 | 紫外线 |
|---|---|---|
| {wind_speed}m/s {wind_scale} {wind_dir} | {humidity}% | {uv_index} |
| 能见度 | 压强 | 云量 |
| {vis}km | {pressure}hPa | {cloud}% |
| {sunrise} | --------------- | {sunset} |
{self.hitokoto}
预警状态:{status} 预警类型:{type_} 灾害持续时间:{start_time[:10]}~{end_time[:10]}
{text}