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

Posted

技术标签:

【中文标题】密件抄送所有外发电子邮件 wordpress【英文标题】:BCC all outgoing emails wordpress 【发布时间】:2021-08-13 06:35:08 【问题描述】:

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

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

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

但似乎什么都没有发生。

我错过了什么?

【问题讨论】:

请不要编辑核心 WordPress 文件!相反,在你的情况下使用相关的钩子,比如wp_mail 您好,感谢您的回复!你能告诉我在哪里放置一个钩子或任何资源吗?谢谢! 查看我的答案 - 只需将电子邮件地址替换为正确的 :) 【参考方案1】:

不要编辑核心 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 插件,请不要忘记在顶部添加 &lt;?php

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

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

【讨论】:

谢谢莎莉!我正在测试这种方法。 当然,慢慢来。 像魅力一样工作!太感谢了。还要感谢您解释我应该在哪里编写代码:)

以上是关于密件抄送所有外发电子邮件 wordpress的主要内容,如果未能解决你的问题,请参考以下文章

通过密件抄送发送邮件时 MailCore 中的错误

在 django 中向密件抄送和抄送发送电子邮件

PHP 电子邮件发送密件抄送

无法通过 Mandrill 发送密件抄送电子邮件(通过 Laravel)

Laravel 邮件密件抄送

Laravel 邮件在添加密件抄送时会发送两次电子邮件