• 基于EZGMAIL的谷歌邮件收发配置


    前篇简述了基于 SMTP 的邮件发送功能,但是 GMAIL 在 2022.05.30 之后将不再支持 SMTP 方式的访问了

    因此需要使用 oauth2.0 来登录账号,但是官方文档很多地方写的不清不楚,甚至还要申请 workspace 的账号,总觉得并不需要这么麻烦,同时又不想从头造轮子,于是找到了一个叫 ezgmail 的库

    https://github.com/asweigart/ezgmail/

    但跟着 readme 走完发现依旧用不了,最后在 issue 里面发现了一个 pull request 找到了更加详细的配置流程

    https://github.com/asweigart/ezgmail/pull/34/commits/c6bc3cd227888730143371935a19b8879b939e5b

    首先打开谷歌云的控制台(Google Cloud Console),创建一个项目(Project)

    https://console.cloud.google.com/

    开启 GMAIL 的 API

    https://console.cloud.google.com/apis/library/gmail.googleapis.com

    打开这个页面然后选择 External ,然后填写 app 名字(似乎不能太短?加点后缀就不会报错了)和联系邮箱(应该可以和当前账户不同),后面保持默认即可

    https://console.cloud.google.com/apis/credentials/consent

    发布app

    创建一个 OAuth Client ID 然后选择类型为 Desktop App

    https://console.cloud.google.com/apis/credentials

    下载 JSON 文件并保管好,该文件是访问账户的秘钥

    然后创建 py 文件,将 JSON 放在同一个目录下,发送邮件仅仅需要一行代码,填入收件人、标题和正文即可,首次运行会打开一个网页要求登录账号,同意之后该目录下会多一个 token.json 文件,不过执行后并不会返回发送的状态

    import ezgmail
    
    ezgmail.send('email address', 'subject', 'body')

     

    有 token.json 则之后登录不再需要打开网页验证了,如果 credentials.json 和 token.json 不在同一个目录下,则可以增加下面代码进行初始化,分别填入两个文件的路径即可

    ezgmail.init(tokenFile="", credentialsFile="")

    额外参考

    https://developers.google.com/identity
    https://cloud.google.com/docs/authentication/getting-started
    https://developers.google.com/gmail/api/guides/sending#python
  • 相关阅读:
    《u-boot.lds分析》
    《uboot源码解析(二)启动第二阶段分析》
    《uboot源码解析(一)启动第一阶段——start.s分析》
    《uboot的目录结构说明》
    《uboot环境变量:详谈bootcmd 和bootargs》
    关于关注和取消关注的nodejs写法
    jquery去除字符串首尾空格的方法:$.trim()
    javascript数组去重算法-----3
    javascript数组去重算法-----2
    javascript数组去重算法-----1
  • 原文地址:https://www.cnblogs.com/Pyrokine/p/16399229.html
Copyright © 2020-2023  润新知