You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Mailgun插件为WordPress事务性邮件添加差异化跟踪标签

解决WordPress中Mailgun事务性邮件自定义标签的问题

嘿,我明白你的困扰——后台设置的全局标签会套用到所有邮件,没法给不同类型的事务性邮件加专属标签对吧?其实你提到的og:tag应该是记混了,Mailgun识别的自定义标签是通过**邮件头X-Mailgun-Tag**或者API参数来设置的,下面给你两种实用的解决方法:

方法1:直接在邮件头中添加专属标签

如果你是用WordPress原生的wp_mail()函数发送邮件,只需要在你的$headers数组里添加X-Mailgun-Tag头就行,完全不影响全局标签(Mailgun会同时保留全局标签和自定义标签)。

修改你的代码示例如下:

$to = 'theiraddress@theirdomain.com';
$subject = 'Test';
$message = 'This is a test message';
$headers[] = 'From: My Website <noreply@mywebsite.com>';
// 这里添加你的自定义事务性邮件标签
$headers[] = 'X-Mailgun-Tag: test-transactional-email'; 
// 如果需要多个标签,可以再加一行
// $headers[] = 'X-Mailgun-Tag: user-onboarding';

wp_mail($to, $subject, $message, $headers);

方法2:用过滤器批量控制不同邮件类型的标签

如果你的插件要发送多种事务性邮件(比如注册确认、密码重置、订单通知等),用WordPress过滤器更灵活,能根据邮件的特征(主题、内容、收件人等)自动分配标签,还能替换全局标签(如果需要的话)。

把这段代码加到你的插件文件或者主题的functions.php里:

add_filter('mailgun_message_params', function($params, $message) {
    // 根据邮件主题判断类型,这里可以换成你自己的判断逻辑
    if (strpos($message['subject'], 'Test') !== false) {
        // 设置单个或多个标签(数组形式)
        $params['tags'] = ['test-transactional-email'];
    } elseif (strpos($message['subject'], 'Order Confirmation') !== false) {
        $params['tags'] = ['order-confirmation', 'transactional'];
    }
    // 如果想完全替换全局标签,直接赋值即可;如果想保留全局标签并添加新标签,可以合并数组
    // $params['tags'] = array_merge($params['tags'], ['new-tag']);
    return $params;
}, 10, 2);

注意事项

  • Mailgun允许单封邮件添加最多5个标签,标签名称不能超过128字符,只能包含字母、数字、下划线和连字符。
  • 如果你用的是官方Mailgun WordPress插件,上面两种方法都能正常生效,不需要额外修改插件核心文件。

内容的提问来源于stack exchange,提问作者Badger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:43:58