Php 邮枪轨道打开

Php 邮枪轨道打开,php,yii2,mailgun,Php,Yii2,Mailgun,刚刚通过API测试了mailgun 一切正常 Short:如何通过Webhook跟踪特定邮件的唯一打开。 (不一定相关,但为了完整性,我使用Yi2 PHP框架-没有扩展,只是来自mailgun的快速入门PHP代码) 电子邮件被发送,并跟踪公开事件。 但我发现它跟踪同一封邮件的每一次打开 那么,跟踪特定邮件是否被打开(通过webhook)的最佳方法是什么呢。哪种数据最适合识别特定的电子邮件,或者在发送时更好地使用“自定义变量”?跟踪电子邮件开口的最佳方法是所谓的“像素”。 首先,您需要在电子邮件

刚刚通过API测试了mailgun

一切正常

Short:如何通过Webhook跟踪特定邮件的唯一打开。


(不一定相关,但为了完整性,我使用Yi2 PHP框架-没有扩展,只是来自mailgun的快速入门PHP代码)

电子邮件被发送,并跟踪公开事件。 但我发现它跟踪同一封邮件的每一次打开


那么,跟踪特定邮件是否被打开(通过webhook)的最佳方法是什么呢。哪种数据最适合识别特定的电子邮件,或者在发送时更好地使用“自定义变量”?

跟踪电子邮件开口的最佳方法是所谓的“像素”。 首先,您需要在电子邮件中插入像素

例如:

    public function insertPixel($user,$template)
        {
            $output = $template.'<img src="'.Yii::app()->homeUrl.'/mailing/pixel/track?id='.$this->campaign->id.'&user='.$user.'&rand='.rand().'">';

            return $output;
        }
public function actionTrack()
{
    if (isset($_GET["id"])&&isset($_GET["user"])){
            Yii::app()->db->createCommand("UPDATE mailing_campaigns SET open_count = open_count + 1 WHERE id=:id")
                ->bindParam(":id",$_GET["id"],PDO::PARAM_INT)
                ->execute();
    }
    header('Content-Type: image/gif');
    echo "\x47\x49\x46\x38\x37\x61\x1\x0\x1\x0\x80\x0\x0\xfc\x6a\x6c\x0\x0\x0\x2c\x0\x0\x0\x0\x1\x0\x1\x0\x0\x2\x2\x44\x1\x0\x3b";
    exit;
}
例如,此代码调整open的邮件活动计数器,并返回1x1透明
.gif
图像


这不是100%精确的,因为有些人没有在电子邮件中加载图像,但这是迄今为止我所知道的最好的方法。

好的,我想我得到了一个可接受的工作流-通过“自定义变量”

您可以为每个收件人定义不同的值,以便发送唯一的id,然后在打开的事件中跟踪该id。只需为每个发件人保存一个打开的文件或更新打开时间

我的发送代码(PHP):

第二封电子邮件的打开事件:

"user-variables": {
    "my-custom-data": "{\"my_message_id\": 2}"
},

谢谢你的回答,但我的问题是如何在mailgun(mailgun.com)中做到这一点。Mailgun处理跟踪像素本身,所以我的问题更多的是关于正确的参数或工作流打开事件。将webhook绑定到端点。据我几分钟后的理解:)更准确。但是我给大家介绍了跟踪的基本知识(也许有时候你会想要/需要创建邮件模块)。嗨,米切克,如果你能在上分享你对邮枪点击跟踪的想法,我将非常感谢。谢谢
"user-variables": {
    "my-custom-data": "{\"my_message_id\": 1}"
},
"user-variables": {
    "my-custom-data": "{\"my_message_id\": 2}"
},