ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-06-22 09:35:45  阅读:158  来源: 互联网

标签:EZGMAIL google console ezgmail 收发 cloud https com 邮件


前篇简述了基于 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

 

标签:EZGMAIL,google,console,ezgmail,收发,cloud,https,com,邮件
来源: https://www.cnblogs.com/Pyrokine/p/16399229.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有