微信发送:
from threading import Timer
from wxpy import *
import requests
from wechat_sender import Sender
bot = Bot()
#bot = Bot(console_qr=2,cache_path="botoo.pkl") #这里的二维码是用像素的形式打印出来!,如果你在win环境上运行,替换为 bot=Bot()
def get_news1():
# #获取金山词霸每日一句,英文和翻译
url = "http://open.iciba.com/dsapi/"
r = requests.get(url)
contents = r.json()['content']
translation= r.json()['translation']
return contents,translation
def send_news():
try:
my_friend = bot.friends().search(u'Tuyee的冷幽默')[0] #你朋友的微信名称,不是备注,也不是微信帐号。
my_friend.send(get_news1()[0])
my_friend.send(get_news1()[1][5:])
my_friend.send(u"来自爸爸的心灵鸡汤!")
t = Timer(1, send_news)#每86400秒(1天),发送1次,不用linux的定时任务是因为每次登陆都需要扫描二维码登陆,很麻烦的一件事,就让他一直挂着吧
t.start()
except:
my_friend = bot.friends().search('Wan悅,')[0] #你的微信名称,不是微信帐号。
my_friend.send(u"今天消息发送失败了")
if __name__ == "__main__":
send_news()
邮件发送:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender='xxxxxxx'#发件人的邮件地址
password='xxxxxxxx'#发件人的客户端密码
host='smtp.qq.com'#发件人用的邮件服务器
receivers=['xxxxxx']#收件人邮箱
#?三个参数:第一个为文本内容,第二个?plain?设置文本格式,第三个?utf-8?设置编码
n='''谢谢史蒂夫,这帮了很多忙。smtplib正在尝试使用CRAM-MD5 auth
。我不知道为什么。但当我
通过更改其preferred_auth列表进行LOGIN 身份验证时,它可以正常工作。Login有自己的
首选auth方法列表,这很好,除了并非所有
宣传特定方法的服务器都能够处理
它。
如果有一种方法可以在
login()中指定要使用的方法,那将是很好的。现在,我只是派生SMTP
来形成一个执行LOGIN身份验证的类。
内存'''
message=MIMEText(n,'plain','gbk')
message['From']=Header("发件人哦~",'gbk')#内容中显示的发件人
message['To']=Header("收件人哦~",'gbk')#内容中显示的收件人
message['Subject']=Header('fuck','gbk')#邮件的题目
try:
smtpObj=smtplib.SMTP_SSL()#这个点要注意
smtpObj.connect(host,465)
smtpObj.login(sender,password)#邮箱登录
smtpObj.sendmail(sender,receivers,message.as_string())
print("邮件发送成功")
except smtplib.SMTPException as e:
print("Error:发送邮件产生错误")
print(e)
smtpObj.close()