密件抄送所有外发电子邮件 wordpress

BCC all outgoing emails wordpress

所以我想将所有从我的 wordpress 网站发出的电子邮件密件抄送到两个静态的、硬编码的电子邮件地址。

我转到 pluggable.php 文件并将 BCC headers 硬编码到 wp_mail() 函数,如下所示:

    function wp_mail( $to, $subject, $message, $headers = ['Bcc: example@mail.com', "bcc: maik@gmail.com"], $attachments = array() ) {

但似乎什么也没有发生。

我错过了什么?

不要编辑核心 WordPress 文件!

相反,请根据您的情况使用 wp_mail 等相关挂钩。

这是一个示例,此代码将添加到 theme functions file, or you can add it as a Must Use plugin:

add_filter( 'wp_mail', 'my_wp_mail_args' );
function my_wp_mail_args( $args ) {
    // Just replace the email addresses with the correct ones. And note that you
    // don't have to add multiple Bcc: entries - just use one Bcc: with one or
    // more email addresses separated by a comma - Bcc: <email>, <email>, ...

    if ( is_array( $args['headers'] ) ) {
        $args['headers'][] = 'Bcc: example@mail.com, maik@gmail.com';
    } else {
        $args['headers'] .= "Bcc: example@mail.com, maik@gmail.com\r\n";
    }

    return $args;
}

PS:如果您将其添加为必须使用的插件,请不要忘记在顶部添加 <?php

顺便说一句,只是为了解释“似乎什么都没有发生”,这是因为 $headers (第四个参数)值可以在调用函数时被覆盖,例如wp_mail( 'foo@example.com', 'test', 'test', [ 'From: no-reply@example2.com' ] )$headers 已设置,因此不使用默认值。

所以我希望这个答案对您有所帮助,请记住,永远不要编辑任何核心 WordPress 文件!首先,因为在许多 WordPress 功能(以及模板)中,您可以使用钩子来修改 function/template 输出,其次,当 WordPress 更新时,您的编辑将消失。