吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2643|回复: 28
收起左侧

[Python 原创] 基于python的操纵gmail实现自动查看,回复

[复制链接]
仿佛_一念成佛 发表于 2023-1-28 23:46

快速开始

相关模块

import smtplib #实现邮件的发送
import re #实现正则匹配邮件内容从而发送特定的内容
import imaplib #邮件相关模块
from email.mime.text import MIMEText #邮件相关模块
from email.header import Header #邮件相关模块
import email #邮件相关模块
import base64 #解码相关内容

代码讲解

def sead_email(): #发送邮件函数
    server = smtplib.SMTP("smtp.gmail.com", 587) #创建和gmail服务器的连接
    server.starttls() # 开始连接
    server.login(accout, password) # 进行登录,这里的password不是账号的密码,而是google二次验证给的一个代码
    # read a email
    # Send an email
    print('Now i will send a email to ' + destination) 

    message = MIMEText('Python script', 'plain', 'utf-8')  # 邮件内容
    message['From'] = Header("Python send email bot", 'utf-8')   # 发送者

    subject = 'Python SMTP 邮件测试'  # 邮件主题
    message['Subject'] = Header(subject, 'utf-8')  # 邮件主题

    server.sendmail(accout, destination, message.as_string())
    # Close the connection
    server.quit() #断开连接
    print('Email sent!')

全局变量

accout = ' ' # 自己的邮箱账号
destination = ' ' # 邮箱目的地
password = ' ' # google给的一个二次验证码,需自己主动创建

读取邮件内容

 def read_email():  # 读取邮件

    conn = imaplib.IMAP4_SSL('imap.gmail.com') #进行连接
    conn.login(accout, password) #进行连接

    conn.select('INBOX') # 选择主要信箱
    result, data = conn.search(None, 'ALL') #选择全部
    mail_id_list = data[0].split() 
    mail_id_list.reverse() # 反转一下为了能够获取到最新的邮件,如删了此行会获取到邮箱的第一封邮件

    for i in mail_id_list[:2]: # :2的意思为最新两封邮件,可需改变其他数字来获取到最新10封
        result, data = conn.fetch(i, '(RFC822)')
        if result != 'OK':  # 检查是否有邮件
            print('No messages found!')
            break

        e = email.message_from_bytes(data[0][1])  # 解析邮件

        subject = email.header.make_header(
            email.header.decode_header(e['SUBJECT']))  # 解析邮件主题

        mail_from = email.header.make_header(
            email.header.decode_header(e['From']))  # 解析邮件发件人
        mail_from = str(mail_from).split('<')[1].split('>')[0]  # 解析邮件发件人

        mail_date = email.header.make_header(
            email.header.decode_header(e['Date']))  # 解析邮件时间

        if e.is_multipart():
            # 获取邮件里的内容,它为base64编码,需要解码,[0]表示第一个邮件内容,[1]表示是第二个邮件内容,其内容为相同的内容不过是html格式
            mail_content = e.get_payload()[0].get_payload()
            mail_content = base64.b64decode(mail_content).decode('utf-8')  # 解码
        print("邮件的subject是: %s" % subject)
        print("邮件的发件人是: %s" % mail_from)
        print("邮件的时间是: %s" % mail_date)
        print("邮件的内容是: %s" % mail_content)
#################################################################
在这里已经获取到了邮件的主题,内容,发送时间和收件人。
接下来你可以写一个自动回复,根据上方获取的内容,并将read_email里的参数作为返回并传到send_email即可进行发送,只需要修改一下send_email里的内容,标题,收件人,即可实现自动发送邮件,
#################################################################

免费评分

参与人数 10吾爱币 +15 热心值 +10 收起 理由
hrh123 + 1 + 1 用心讨论,共获提升!
mikeee + 1 + 1 谢谢@Thanks!
哎呦喂! + 1 + 1 谢谢@Thanks!
z_8013 + 1 + 1 谢谢@Thanks!
wushaominkk + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
HGG01 + 1 + 1 用心讨论,共获提升!
17313165175 + 1 + 1 我很赞同!
py学徒 + 1 谢谢@Thanks!
pantr0y + 1 + 1 谢谢@Thanks!
xlln + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

tb633495121 发表于 2023-9-4 16:39
我的工作是每天给很多海外博主发邮件,我找兼职写了一个自动发邮件的软件,就是导入excel然后PY就会按照我的表格自动输入邮箱,点击模板,然后定时发送,就是模拟人工发邮件给别人。我可以把代码发给你。我现在想优化这个系统。
https://t.wss.ink/f/c3pksqp46mb 复制链接到浏览器打开
mikeee 发表于 2023-9-6 12:59
tongjin0 发表于 2023-3-28 17:07
2022年就开始不支持账号密码走imap协议登录了吧

其实还可以用,但不能用gmail的登录密码,而是要在“google账户管理/安全”(https://myaccount.google.com/security)里选“两步验证”,在页面的最下面选“应用程序密码”选电邮生成一个16位的专用密码。然后 smtplib 或 imaplib 都可以用。
py学徒 发表于 2023-1-29 09:22
ai70755 发表于 2023-1-29 09:23
感谢分享
jingyu123 发表于 2023-1-29 09:57
感谢分享
vision508 发表于 2023-1-29 09:59
用心了,注释很清楚
orb001 发表于 2023-1-29 10:17
谢谢分享。
uouobb 发表于 2023-1-30 09:10
带注释的,看起来就是舒服。
holygate 发表于 2023-1-30 10:19
标记一下 谢谢分享
zduyiwuer 发表于 2023-1-30 15:05
感谢分享
pentium 发表于 2023-2-22 23:25
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 18:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表