前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 骚操作--邮件转微信

Python 骚操作--邮件转微信

作者头像
somenzz
发布2020-12-10 11:20:48
7430
发布2020-12-10 11:20:48
举报
文章被收录于专栏:Python七号

阅读本文大约需要 1 分 46 秒。

今天是七夕节,来一波浪的,如果你没有出去玩,不妨一试。

在日常工作中,我们会经常收到邮件,有些是重要的邮件我们希望第一时间知晓,如领导发送的邮件,程序报警邮件。微信是我们使用频率最高的 app 了,因此如果能把邮件内容及时发送到微信,我们就可以及时获取邮件信息,进而采取相应行动。比打开邮件客户端再点击邮件查看要方便多了。

需要安装第三方库 wxpy,wechat_sender,zmail

代码语言:javascript
复制
pip install wxpy
pip install wechat_sender
pip install zmail

原理:使用 wxpy 登陆网页版微信,使用 wechat_sender 监听 wxpy 登陆的微信,使用 zmail 获取邮件。

思维导图如下:

完整代码 文件一 :startWechat.py

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from wxpy import *
from wechat_sender import listen

#扫码登陆网页版微信
bot = Bot(cache_path=True)

@bot.register(Friend)
def save_msg(msg):
    tuling.do_reply(msg)  # 机器人自动回复
    print(msg, file=open("./saved.txt", "a"))  # 保存所有朋友的消息

# 响应好友请求
@bot.register(msg_types=FRIENDS)
def new_friend(msg):
    user = msg.card.accept()  # 接受好友请求
    user.set_remark_name(
        msg.text.replace("我是", "").replace("我", "").replace(" ", "")
    )  # 自动添加备注

listen(bot) #监听

请执行 python startWechat.py 并扫二维码登陆微信,并让它持续运行。

文件二:SendMail2wechat.py

代码语言:javascript
复制
from wechat_sender import Sender
import zmail
import time

mail_user = "******@xxx.com"
mail_pwd = "******"
mail_host = "mail.wjrcb.com" # eg: pop3.163.com 主流邮件服务器,这个不传此参数

server = zmail.server(mail_user, mail_pwd, pop_host = mail_host)
mail = server.get_latest()
id = mail["id"] - 1

while True:
    try:
        mail = server.get_latest()
        maxid = mail["id"]
        while id < maxid:
            id += 1
            mail = server.get_mail(id)
            # 主题 + 正文 
            content = "".join(mail["content"]) if mail["content"] != [] else "".join(
                mail["content_html"]
            )
            message = f"""发件人:\n{mail['from']}\n主题:\n{mail['subject']}\n正文:\n{content}"""
            send_ip = mail["raw"][17].decode("utf-8").split(":")[1].replace(" ", "")
            Sender().send(message)
        # 如果邮箱有邮件被删除
        if id > maxid:
            id = maxid
    # 如果超时,则重新登陆
    except Exception as e:
        server = zmail.server(mail_user, mail_pwd, pop_host =  mail_host)
    # 每30秒检查一次
    time.sleep(30)

运行 python SendMail2wechat.py,消息会自动发送至文件传输助手,当然也可以自己调,详见 wechat_sender 的文档。 体现一下效果吧!

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python七号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档