半年前,我想用python写一直爬虫爬天气,然后通过微信机器人每天发送天气信息给女朋友(我们程序员要是浪漫起来,就没人其他人的事了)。
但是后来放弃了,因为微信在客户端只能登陆在同一机器上,如果微信机器人运行在服务器上,那就意味着不能在自己的电脑上登陆微信了,强行登陆会导致服务端微信被被迫下线。
后来,我想到了用邮箱来发送消息,邮箱没有多端登录的问题,我用的是网易的163邮箱。
python发送邮件主要有两个库,smtplib和yagmail,我用的是yagmail,因为它简单易用。
废话不多说,讲重点,分两步:
1,登录163邮箱,在首页上找到 设置 -> POP3/SMTP/MAP。
2,然后勾选复选框中的 POP3/SMTP服务 ,在弹出确认授权对话框的时候点击确定。
3,点击 开启 (授权码),在弹出对话框之后按照提示发送短信进行验证。
4,发送短信之后,点击我已发送,则会弹出填写授权码的对话框,创建授权码(也就是用python发邮件的时候使用的密码),确定之后会再弹出一个确认对话框,点击确定就OK啦。
首先通过安装yagmail模块
pip install yagmail
下面是核心代码,先ctrl + c , 再 ctrl + v , 然后改改就OK啦
import yagmail
#通过邮箱服务器登录自己的邮箱,host是163邮箱的服务器
email = yagmail.SMTP(user="[email protected]", password="1314abc", host='smtp.163.com')
#开始发送邮件 email.send(别人的邮箱,标题,[内容,附件1,附件2])
email.send('[email protected]', '问候', '你最近好吗?')
不知道为啥,邮件有很大的可能性会被对方的邮箱放入垃圾箱。
解决方法,标题和内容用英文写,就不会被放入垃圾邮箱啦。