Google Cloud中WordPress用SMTP调用Gmail收发邮件

罗帆 Google优化 2018-05-29 3040 0

前面弄了个Google cloud玩玩,现在里面赠送的美金和时间还很长,所以就用其搭建了一个网站环境,把部分的外贸网站放在上面。前面教程《Google Cloud环境搭建》中,我采用的是宝塔面板环境搭建的,然后网站是wordpress。使用的时候一切正常,虽然给了对应的端口,但是wordpress留言收发邮件的功能始终不行。后面经过查询才发现,Google Compute Engine不允许端口25,465和587上的出站连接。默认情况下,由于这些端口容易受到大量滥用,因此这些出站SMTP端口会被阻止。此外,拥有受信任的第三方提供商(如SendGrid,Mailgun或Mailjet)可以减轻计算引擎的负担,并使您无需维护接收方的IP信誉。详见《Sending Email from an Instance


根据Google给的处理方案,最终解决了这个问题,详细的记录如下:


1.安装wordpress插件:WP Mail SMTP by WPForms,启动插件,进入设置,大概是下面这样的(注:随着插件版本的更新对应的界面可能会不同)

用SMTP收发邮件.jpg

如上图所示:


From Email:填写你的Gmail邮箱


From Name:你站点的名字


Mailer:选择Google的Gmail


Return path:勾选上


2.然后,就要去申请对应的Google Client ID 和密匙,方法是用你的Gmail信息登录进入https://console.developers.google.com/flows/enableapi?apiid=gmail&pli=1 创建对应的API。


2.1创建google APIs

用SMTP收发邮件.jpg


2.1.1这里如上图所示,创建项目,点“继续”。

用SMTP收发邮件.jpg


点击:转到“凭据”页面。


2.1.2凭据页面设置,参考下图

用SMTP收发邮件.jpg


①调用的API选择:Gmail API


②从哪里调用API:网页服务器(例如 node.js/Tomcat)


③访问哪些数据:用户数据


把这三项选择好了后,就点击“我需要哪些凭据?”。


2.1.3 Google APIs 为项目添加凭据

用SMTP收发邮件.jpg


①名称:随便写,自己标记用的。


②来源:填写网站的绝对地址,比如我的博客,那就是https://www.luofan.net  (注意,不要后面的 / ,另外,好像必须要HTTPS才行,因为我没有给http来测试,所以此处自行确认)


③重定向URL:回到你自己网站的wordpress后台wp mail smtp插件页面,也就是上面步骤1中的截图页面,查看Gmail部分下方的标记为授权重定向URI的字段。

用SMTP收发邮件.jpg


一般都是:https://你网站的地址/wp-admin/options-general.php?page=wp-mail-smtp&tab=auth (大概是这个样子)

用SMTP收发邮件.jpg


然后,点击创建OAuth客户端ID。


2.1.4Gmail邮箱授权登陆,设置 OAuth 2.0 同意屏幕,名称随便写,邮箱按时填写。

用SMTP收发邮件.jpg


点“继续”。


2.1.5就可以看到下载凭据页面,这里,你的Client ID就出来了。我们点击以后再执行此操作,如下图所示

用SMTP收发邮件.jpg


2.1.6完整的凭据信息里,可以看到我们刚刚设置的名称以及对应的ID信息,点击右边的那个“笔”进行编辑

用SMTP收发邮件.jpg


2.1.7就可以获得完整的Google APIs的ID和密匙,如下图所示:

用SMTP收发邮件.jpg


把客户端 ID复制填写到插件Client ID中


把客户端密匙复制填写到插件Client Secret中

用SMTP收发邮件.jpg


注意,一定不要复制错了,不要复制多了空格(我犯了一次这个错误)


2.2在插件上填写了上面的2个信息后点击保存。

用SMTP收发邮件.jpg


然后给Gmail访问授权。这里很大概率会弹出提醒SSL不安全,被拦截。

拦截.jpg

点击高级,继续访问。插件的页面底部会有一个允许的提醒,给授权允许即可。


2.2.1在允许后,就是Gmail登陆的页面,用对应的Gmail登陆,然后授权。

用SMTP收发邮件.jpg


2.2.2然后设置以及完了,现在你可以测试下APIs

用SMTP收发邮件.jpg


OK了,邮箱的功能搞定。

如果大家在使用中还有什么问题,请给我留言。尽可能的详细描述你的问题BUG,我好做个汇总,比如常见错误解决办法。

推荐阅读:当你的端口没有被封闭,那就用超级简单的方法wordpress设置评论邮件提醒功能,1分钟搞定。

评论