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

如何在WordPress及WooCommerce中添加多个发件人邮箱地址?

在WooCommerce中添加多个订单通知回复邮箱的解决方案

问题背景

你尝试在WooCommerce的WooCommerce => Settings => Emails => Email Sender Options => Sender Address字段中用逗号分隔填写多个邮箱(比如support@mybusiness.com, myemail@gmail.com),但用户回复时邮箱地址被错误合并,导致投递失败,提示Address not found;此前尝试的PHP函数也未生效。

关键说明

首先要明确:Sender Address字段是用来设置邮件的发件人地址,本身不支持直接填写多个邮箱。这个字段的设计逻辑是单个发件人地址,强行填入多个邮箱会触发格式解析错误,也就是你遇到的地址被合并的问题。

如果需要让用户回复订单通知时,邮件能发送到多个邮箱,正确的做法是修改邮件的Reply-To头信息,而非修改发件人地址。

正确的PHP解决方案

之前的代码无效是因为处理Reply-To头的方式存在问题,以下是修正后的可用代码:

function custom_change_reply_to_address( $headers, $email_id, $order ) {
    // 可根据需求添加更多需要修改的订单通知邮件类型
    $target_email_types = array(
        'customer_completed_order',
        'customer_processing_order',
        'customer_on_hold_order'
    );

    if ( in_array( $email_id, $target_email_types ) ) {
        // 替换为你需要接收回复的多个邮箱地址
        $reply_to_emails = array(
            'support@mybusiness.com',
            'myemail@gmail.com'
        );

        // 按照邮件标准格式拼接多个地址(逗号+空格分隔)
        $formatted_reply_to = implode( ', ', $reply_to_emails );

        // 精准移除已存在的Reply-To头信息
        $headers = preg_replace( '/^Reply-To:.*\r?\n/m', '', $headers );

        // 添加新的多地址Reply-To头
        $headers .= "Reply-To: $formatted_reply_to\r\n";
    }

    return $headers;
}
add_filter( 'woocommerce_email_headers', 'custom_change_reply_to_address', 20, 3 );

代码修正点说明

  • 提高钩子优先级至20,确保能覆盖WooCommerce默认的Reply-To设置
  • 支持同时针对多种订单通知邮件类型配置回复地址
  • 采用符合邮件头规范的多地址格式(逗号+空格分隔)
  • 更精准地清除原有Reply-To头,避免残留或重复内容

使用方法

  1. 将上述代码添加到WordPress主题的functions.php文件中
  2. 修改$reply_to_emails数组内的邮箱地址为你的目标地址
  3. 保存文件后,测试发送订单通知,用户回复时邮件会自动投递到所有设置的邮箱

内容的提问来源于stack exchange,提问作者unity-student

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 02:10:37