如何在 PHP 中跟踪使用 GMAIL API 发送的电子邮件的已发送、已打开、已单击、已退回、已阻止等电子邮件传递状态

Posted

技术标签:

【中文标题】如何在 PHP 中跟踪使用 GMAIL API 发送的电子邮件的已发送、已打开、已单击、已退回、已阻止等电子邮件传递状态【英文标题】:How to track the email delivery status like delivered, Opened,Clicked ,Bounced,Blocked for an email sent with GMAIL API in PHP 【发布时间】:2021-11-15 00:39:37 【问题描述】:

如何跟踪使用 GMAIL API 发送的电子邮件的已发送、已打开、已单击、已退回、已阻止等电子邮件状态。 以前我们使用 SendGrid 发送电子邮件和跟踪电子邮件。 在 sendgrid 中,我们使用回调 URL 来跟踪电子邮件。

现在我们已经切换到 Gmail API 来实现邮件发送功能。 Google 管理控制台中的电子邮件日志搜索功能是管理员用来跟踪电子邮件的工具。谷歌是否提供任何 API 来以编程方式跟踪电子邮件?

用于 Gmail API 调用的 php 代码

        $this->load->library('Google');
        $this->google->setScopes(["https://mail.google.com/",
        "https://www.googleapis.com/auth/gmail.compose",
        "https://www.googleapis.com/auth/gmail.modify",
        "https://www.googleapis.com/auth/gmail.send"]);
        $this->google->useApplicationDefaultCredentials();
        $this->google->setSubject($user);
        $this->google->setApplicationName("Quickstart");
        $service = new Google_Service_Gmail( $this->google); 
        // Main Process
        
        $msg = $this->createMessage($sender, $to, $subject, $messageText);
        $res = $this->sendMessage($service, $sender, $msg);

我们可以通过 PHP SDK 中的 $service->users_messages->get 方法读取邮件。但是我们无法跟踪电子邮件的状态,例如打开、点击、退回、阻止。

【问题讨论】:

【参考方案1】:

Google Workspace 电子邮件审核 API 允许 Google Workspace 管理员审核用户的电子邮件、电子邮件草稿和存档的聊天记录。

参考:- https://developers.google.com/admin-sdk/email-audit/

我相信 google 没有提供任何特定的 API 来处理电子邮件。

堆栈溢出参考:- Google Email Log Search API

【讨论】:

以上是关于如何在 PHP 中跟踪使用 GMAIL API 发送的电子邮件的已发送、已打开、已单击、已退回、已阻止等电子邮件传递状态的主要内容,如果未能解决你的问题,请参考以下文章

使用 GMAIL API 跟踪电子邮件发送状态

如何向300多名用户大量添加Gmail API权限?

PHP Gmail API:可以发送电子邮件但如何添加收件人电子邮件

我如何使我的PHP应用程序从不要求提供Gmail API验证码?

使用带有 Laravel PHP 的 Gmail Api 读取网站上的所有 gmail 收件箱,然后回复特定的电子邮件

检查Gmail帐户是为了跟踪使用Python的百分比