本文为博主原创,未经许可严禁转载。
本文链接:https://blog.csdn.net/zyooooxie/article/details/111476470

最近用smtplib写了发送邮件的脚本,因为网上教程一大堆,我就只说下我遇到的坑;

这是我写的 python脚本的category ,有兴趣 可以看看;

个人博客:https://blog.csdn.net/zyooooxie

报错 please run connect() first

在这里插入图片描述

我这个情况和别人不太一样 SMTPServerDisconnected(‘please run connect() first’,)

我当时遇到这个问题时 【我能成功发邮件,但是报错:please run connect() first 】;因为不懂(代码都是CTRL + C来的),就直接在网上搜答案,但网友的答案 好像都不对症;

我就问了我公司的导师,她指点 可能是发送邮件的代码执行了,它后面的代码出错了吧 ,我才反应过来;

顺利找到了我的问题所在: 【之前代码是 smtp.close() + smtp.quit() 都有】
改后:

在这里插入图片描述

看下 源代码,

    def close(self):
        """Close the connection to the SMTP server."""
        try:
            file = self.file
            self.file = None
            if file:
                file.close()
        finally:
            sock = self.sock
            self.sock = None
            if sock:
                sock.close()

    def quit(self):
        """Terminate the SMTP session."""
        res = self.docmd("quit")
        # A new EHLO is required after reconnecting with connect()
        self.ehlo_resp = self.helo_resp = None
        self.esmtp_features = {}
        self.does_esmtp = False
        self.close()
        return res
        

对比下 官方文档的介绍 smtplib —SMTP协议客户端
close() 是关闭SMTP服务器连接;quit()是结束整个SMTP会话;

我这报错是:我先close() 关闭了,又quit();已经关闭连接,还想关闭呢???
就明白 quit() 比起close() 更实用。

Gmail 不支持 包含可执行文件类型的 zip附件

看下我的接收人: 【我现在的公司邮箱是 Gmail企业邮箱】
在这里插入图片描述

在我调试代码过程中,跑 发送纯文本格式邮件的方法email_send_text() 、发送HTML格式邮件的方法email_send_html() ,是没啥问题的;
我又写了个 发送 纯文本、HTML、附件的方法 email_send_text_html_file(),【附件为excel文件 :测试用例 +jpg文件:bug截图】也没啥问题;我想着,那就把测试报告也加入附件呗,

因为我用的pytest,有2种生成测试报告:

  1. pytest-html 把Html文件做附件没啥问题;
  2. allure 这一大堆 乱七八糟的,不如压缩下,搞个zip文件吧;

然后就收不到邮件了。。。

百思不得其解,我还以为我发了四、五十封邮件,公司把我这个sender拉黑了;
感觉好像又有点 大材小用啊,我这小鸡 用得着 牛刀?

1小时后 我就随便看了下我的网易邮箱(还被逼着 装了App),咦,这么多未读邮件?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

说一句: 我在压缩的同时,顺便给它加了个密

后续我又试验了【不加密】:

失败【压缩文件 为allure的文件夹】 可能是 有可执行文件的原因;

在这里插入图片描述

成功【压缩文件 为图片】
在这里插入图片描述

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐