舔狗模块-python云函数邮件功能·躺着也能追女生
简介
先来个大致流程概括,需要python的邮件模块,然后配合上腾讯云的云函数,这个云函数是免费的,百八十万的调用次数,个人绝对够用的,然后我们把脚本放到云函数里面加个定时去执行就可以了!
参考文档
csdn-邮件发送,若不懂操作过程可以参考,很详细的
用到的API
一言
和风天气api
地址经纬度查询
这个经纬度是在调用天气API中需要加入的参数,具体根据需要更改
代码整改
-- coding: utf8 --
import json
import requests
import smtplib
from email.header import Header
from datetime import datetime
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
def main_handler(event, context):
url='https://v1.hitokoto.cn?c=h&c=d&h=j'
res=requests.get(url).json()
msg=res['hitokoto']+'\n'+'—出自:'+res['from']
print(msg)
sender_mail = '你的@qq.com' #这里填发件人邮箱
sender_pass = '你的码' #这里填SMTP授权码
to='对象的@qq.com' #这里填收件人邮箱
# 设置总的邮件体对象,对象类型为mixed
msg_root = MIMEMultipart('mixed')
# 邮件添加的头尾信息等
msg_root['From'] = 'Mr.zhao:今天依然很爱你呢' #发送人描述
msg_root['To'] = to
# 邮件的主题,显示在接收邮件的预览页面
subject = 'Good Morning' #邮件标题
msg_root['subject'] = Header(subject, 'utf-8')
# 添加时间计划
#构造一个将来的时间
future = datetime.strptime('2021-05-10 00:00:00','%Y-%m-%d %H:%M:%S')
#当前时间
now = datetime.now()
#求时间差
delta = future - now
#print("距离 2021-05-20 \"我们结婚\" 还剩下:%d天"%delta.days)
date='距离 2021-05-20 \"我们结婚" 还剩下:'+str(delta.days)+'天'
urls = 'https://devapi.qweather.com/v7/weather/now?location=117.244279,31.779511'
urlss='&key=你的key'
urlsss=urls+urlss
print(urlsss)
ress = requests.get(urlsss).json()
msge = '\n'+'数据请求date:' + ress['now']['obsTime'] + '\n' + '天气:' + ress['now']['text'] + '\t'
megee='\n'+'舒适度:'+ress['now']['feelsLike'] + '\t' + '气温:' + ress['now']['temp']+'C' + '\t'
megeee='\n'+'风向:' + ress['now']['windDir'] + '\t' + '风力:' +ress['now']['windScale'] + '级'
megeeee='\n'+ '\t'+'空气湿度:' + ress['now']['humidity'] + '\n'
s=msge+megee+megeee+megeeee
print(s)
# 构造文本内容
text_info = msg+'\n'+date+'\n'+s
text_sub = MIMEText(text_info, 'plain', 'utf-8')
msg_root.attach(text_sub)
try:
sftp_obj =smtplib.SMTP('smtp.qq.com', 25)
sftp_obj.login(sender_mail, sender_pass)
sftp_obj.sendmail(sender_mail, to, msg_root.as_string())
sftp_obj.quit()
print('sendemail successful!')
except Exception as e:
print('sendemail failed next is the reason')
print(e)
return("successful!");