【问题标题】:Is there a way to trace IP address from where mailgun API is called有没有办法跟踪调用mailgun API的IP地址
【发布时间】:2020-09-08 20:13:09
【问题描述】:

我们正在使用 Mailgun 通过 Laravel 发送电子邮件,目前面临关于每天发送电子邮件的问题。有四个网站实例,无法跟踪电子邮件是从哪里发出的。

那么有什么方法可以追踪调用 Mailgun API 的 IP 地址吗?

【问题讨论】:

  • 您从电子邮件标题中获取发件人信息,您可以在发送的电子邮件中主动隐藏发件人信息(以识别您的节点)。
  • 您可以检查您收到的电子邮件的标题,ip 将是最后的Received 行。不幸的是,虽然我发现您可以在 Mailgun 日志中搜索您的服务器 IP,但实际上并没有显示出来。
  • 您可以使用事件 webhook:documentation.mailgun.com/en/latest/…
  • 是的,我使用了事件 webhook 并针对我的电子邮件地址使用了 curl 请求。但是相同的 mailgun 凭据正在两个不同的站点上使用。我如何区分电子邮件的发送位置。 @DanielW。

标签: php laravel mailgun


【解决方案1】:

为 mailgun 电子邮件添加自定义标头

我认为最好的方法是使用 h: 选项使用自定义标头标记邮件:

curl -s --user 'api:YOUR_API_KEY' \
    https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages \
    -F from='Sender Bob <sbob@YOUR_DOMAIN_NAME>' \
    -F to='alice@example.com' \
    -F subject='Hello' \
    -F text='Testing some Mailgun awesomness!' \
    -F h:X-Sender-Reference='server3'

这样,您可以在事件日志中看到X-Sender-Reference自定义标头,以了解哪个服务器发送了消息。

请记住,这些标头也可以被您的接收者查看,因此不要暴露敏感信息。

根据您的库,可以使用以下内容:

$headers = $message->getHeaders();
$headers->addTextHeader('X-Sender-Reference', 'server3');

见:https://documentation.mailgun.com/en/latest/api-sending.html#sending

标记 mailgun 电子邮件

还有使用o:标记消息的选项:

curl -s --user 'api:YOUR_API_KEY' \
    https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages \
    -F from='Sender Bob <sbob@YOUR_DOMAIN_NAME>' \
    -F to='alice@example.com' \
    -F subject='Hello' \
    -F text='Testing some Mailgun awesomness!' \
    -F o:tag='September newsletter' \
    -F o:tag='server3'

每条消息允许的标签限制为三个,我认为目的是营销聚合。从技术上讲,可以像上面示例中的自定义标题一样使用它。

一些 PHP 库可能会这样使用:

$headers = $message->getHeaders();
$headers->addTextHeader('X-Mailgun-Tag', 'server3');

见:https://documentation.mailgun.com/en/latest/user_manual.html#tagging

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多