我已经设置了Mailgun域来跟踪Laravel应用发送的电子邮件的打开和点击。
现在,我想设置webhooks来通知这些事件。
尤其是,我很想知道事件的类型(例如,打开,单击,失败等),主题,收件人电子邮件地址,以及理想情况下的消息正文(尽管不是必需的)。对于“点击”事件,我还想查看被点击的链接的URL。
我看到Webhook发送了Event data的哪些字段,与Amazon SES不同,Mailgun的webhooks似乎没有包括电子邮件的主题或正文。
webhook提供了如下数据:
"message": {
"headers": {
"message-id": "f9bxxxxx1e30e7278f5fe75f50741fb3@swift.generated"
}
}
因此,在我看来,我需要某种方式去发送电子邮件的应用程序中的每个位置,并添加其他功能以将电子邮件的详细信息以及每个电子邮件的the unique Mailgun message-id保存到我自己的数据库中邮件发送后立即发送。
然后,当接收到Webhook时,我将在自己的数据库中搜索message-id,然后可以看到存储的主题和正文。
这似乎是一个麻烦而又糟糕的设计,尤其是考虑到其他服务(例如SES)会在网络挂钩中为我提供电子邮件主题。
是否有一些更简单的方法让我知道哪些电子邮件已打开或被单击(当我收到有关打开或单击事件的Mailgun Webhook时)?
(我误会了什么,还是真的需要改造我的整个应用程序才能利用Mailgun中的开放跟踪功能?)
答案 0 :(得分:0)
您的假设正确,Opened和Clicked事件不正确 包含发起跟踪的邮件的主题行 事件。
当前,“点击和打开”跟踪链接不会跟踪 它正在跟踪的邮件的主题行。跟踪链接编码 邮件ID,收件人,域,收件人变量和其他 将跟踪地址链接回您的帐户的专有数据。 向跟踪链接添加其他数据将导致该链接 增加链接的长度,并可能将链接标记为 收件人垃圾邮件过滤器可疑或“垃圾邮件”。
目前,尚无计划更改Clicked和 已开启的活动,但我们设置了一个页面来接收反馈/功能 http://mailgun.uservoice.com/的请求。随时提交 请求。其他用户可以支持该请求,我们的开发人员将 审查请求并考虑到将来 产品的版本。
他们的这种借口令人沮丧,因为这是一个谎言:URL的长度与他们是否可以在网络挂钩中报告主题(以及电子邮件的任何其他属性)无关。
Mailgun期望用户执行的操作正是Mailgun 可以执行的操作,但是选择不执行以下操作:将多余的数据与message-id一起存储在数据库中,然后使用可跟踪的message-id链接以获取用于Webhook的额外数据。
我将切换到Mailgun以外的提供商,尤其是现在我还 得知Hotmail,MSN和Live.com都拒绝了我的Mailgun电子邮件。