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

时间:2021-05-25 01:59:40

标签: wordpress wp-mail

因此,我想将所有外发电子邮件从我的 wordpress 站点密件抄送到两个静态、硬编码的电子邮件地址。

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

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

但似乎什么都没有发生。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

请不要编辑核心 WordPress 文件!

相反,在您的情况下使用相关的钩子,如 wp_mail

这是一个示例,此代码将添加到 theme functions file 中,或者您可以将其添加为 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:如果您将其添加为 Must Use 插件,请不要忘记在顶部添加 <?php

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

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