利用Postman SMTP认证OAuth 2.0,以GMail来发信

在本文中你会学到什么?

  • Postman SMTP Mailer/Email Log的基本使用方法与设定,解决WordPress发信失败的问题
  • 如何在「Google Developers Console」中取得GMail API的用户端ID (Client ID)与密钥(Client Secret)
  • 接触OAuth 2.0的认证方式

有架WordPress的站长应该常常会有信件发送的需求,我之前也曾介绍过「WP Mail SMTP」这款外挂来解决我发信失败的问题,用外挂的好处就是不太需要动到程式码,对于不熟程式想要专心写作的站长来说,也算是一个折衷下的选择。回归主题,这阵子发现WordPress的发信又失败了,WP Mail SMTP (由GMail发送)的测试信件的错误讯息是:「SMTP Error: Could not authenticate」,有可能是信箱被Google锁住了,或者认证的方式有改变,但可以确认的是我的帐号是可以正常登入GMail的,这让我想起了之前Windows Live Writer无法存取Blogger的状况,因此猜测可能是认证上出了一点问题,由于时间上的限制,我也没有深入再研究,而是直接找来另一个「Postman SMTP Mailer/Email Log」来协助我设定SMTP以及认证上的问题,这款外挂的好处是它支援了OAuth 2.0,因此不需要储存我们的密码,同时也支援了一些知名的信件发送服务网站,例如:Mandrill、SendGril等,实际使用过后的确可以有效的解决我发信的困扰,虽然OAuth 2.0的认证步骤是比较多一点,但是值得有需要的人一试。

网址:Postman SMTP Mailer/Email Log

【使用教学】

1. 安装Postman外挂

由WordPress后台的「外挂」→「安装外挂」中,输入关键字「postman」,就可以寻找到我们要安装的「Postman SMTP Mailer/Email log」

安装完成后,在「设定」中会出现「Postman SMTP」的选项

2. Postman SMTP的设定

第一次使用Postman SMTP时需要先进行设定,外挂本身有提供设定精灵,对于SMTP设定不熟的人很有帮助:请点击左上角的「Start the Wizard」

2.1如果你之前有装过其他SMTP外挂(例如WP Mail SMTP),那么Postman SMTP会将之列出,我们可以直接套用之前的设定,或者选择「 None」来重新设定,但我觉得其实差不多,只是一些名称的设定有些许的不同而已,所以建议直接用None来进行设定

2.2设定要用哪个信箱来发信并自订发信者的名称

2.3接着会根据你输入的EMail自行扫描适合的SMTP,因本文是采用GMail信箱来测试,所以很容易就可以侦测的到SMTP,如果侦测出来的结果是错的,请自行填入

2.4下一步Postman会继续做连结的测试,并把适合的设定都列出来,以GMail来说,预设的建议值是以Port = 587(适用TLS)、OAuth 2.0的搭配为主,这也是本文的重点

我也测试过用Port = 465 (适用SSL)、Password的组合,但是传送测试信件时会失败

2.5此步骤是最关键的一步,我们必需取得GMail API的用户端ID (Client ID)和密钥(Client Secret),以下是重点说明:

  • 可直接点击画面中「Google Developers Console Gmail Wizard」,进入Google Developers Console来取得我们所需要资讯
  • 画面亦附上了作者实际的「操作影片」,有需要的人可以进入观看,或者直接参考本文以下的说明(建议)
  • Authorized JavaScript origins:此资讯在取得Client ID时需要用到
  • Authorized redirect URI:此资讯在取得Client ID时需要用到
  • Client ID:从Google Developers Console中取得用户瑞ID,请回贴至此栏位
  • Client Secret:从Google Developers Console中取得用户瑞密钥,请回贴至此栏位

取得GMail API的用户瑞ID与密钥

点击「Google Developers Console Gmail Wizard」之后,请登入GMail帐号,即可看到注册Gmail API的画面,若之前你已经建立过相关的专案,那么可以用旧专案来管理,若没有的话,请选择「建立新专案」

点击「前往凭证」随续设定凭证资料

在本例中,我们是要通过OAuth 2.0的认证,所以请在新增凭证中选择「OAuth用户瑞ID」

需先前往「设定同意画面」中设定产品名称,才能建立OAuth用户瑞ID

填入电子邮件与产品名称,此二栏为必填项目,填完后请储存离开

下一步会进入「建立用户端ID」,请选择「网路应用程式」并给予容易识别的名称,而最重要的二个栏位填写方式如下:

  • 「已授权的JavaScript来源」请填入在「2.5」节中由Postman SMTP所提供的「Authorized JavaScript origins」资讯
  • 「已授权的重新导向URI」请填入在「2.5」节中由Postman SMTP所提供的「Authorized redirect URI」资讯

填写完成后请记得按「建立」

大功告成啰,在这个步骤应该就会看到我们所建立的用户端ID与密钥,请把这二个资料回填到刚刚「2.5」节中Postman SMTP的对应栏位中

2.6回填完GMail API的用户端ID与密钥后,就完成了Postman SMTP的设定了

2.7还差最后一步,回到Postman SMTP设定主页后,请点击「Grant permission with Google」,来请求GMail的存取授权

请点击「允许」

2.8辛苦设定好了之后,我们可以藉由「 Send a Test Email」来实际测试看看是否可以正常的发信

输入收信者的信箱后并点击「Next」

若测试成功,就可以看到「Success」的讯息,若是失败就得看出错讯息为何,然后再进一步的排解

小结:OAuth 2.0是近来很热门的认证方式,虽然在这次的Postman SMTP设定中因选择了OAuth 2.0导致设定的步骤较多,但在过程中并没有遇到什么太大的问题,非常的顺利,而且也解决了原本无法发信的问题,最重要的是同时也让我接触到了GMail API建立Client ID的过程,算是一个很好的经验。

转自:靖.技场

订阅文章

在下面输入您的电子邮件地址以订阅我们的通讯

留下评论