WP_MAIL未在自定义函数上发送电子邮件

时间:2021-03-15 作者:Thando Hlophe

我已经将wordpress更新到新的5.7版本,我的函数中有一个函数。php文件发送电子邮件。

问题是,我以前使用过这个函数,它运行得很好。现在升级后,我无法从自定义功能send\\u email()发送电子邮件

功能中的自定义电子邮件功能。php

 function send_email(){
        $from = "Admin <[email protected]>";
        $to = "[email protected]";
        $subject = "Lamza Activation";
        $activationEmail = \'\';
        $headers = "From:" . $from . PHP_EOL;
        $headers = array(\'Content-Type: text/html; charset=UTF-8\');
        wp_mail($to, $subject, $activationEmail, $headers);
    }
我不断得到错误的值。

我可以使用Easy WP SMTP发送测试电子邮件,但我无法使用我的功能。

我需要知道我需要更改什么,配置还是我的人为错误。

谢谢yall

1 个回复
SO网友:butlerblog

应用标题的方式不正确。您设置了一个;“自”;在标头中以字符串形式显示地址,然后立即用数组覆盖该地址(因此“发件人”地址将丢失)。(您还设置了两次$发件人地址)

可以这样尝试:

function send_email(){
   $to = $email;
   $subject = "Lamza Activation";
   $activationEmail = \'\';
   $from = "testing <[email protected]>";
   $headers[] = "From:" . $from . PHP_EOL;
   $headers[] = \'Content-Type: text/html; charset=UTF-8\';
   wp_mail($to, $subject, $activationEmail, $headers);
}
或者,您也可以使用wp_mail 筛选以设置发件人地址和内容类型。

function send_email(){
   $to = $email;
   $subject = "Lamza Activation";
   $activationEmail = \'\';
   wp_mail($to, $subject, $activationEmail);
}

add_filter( \'wp_mail_from\', function( $from ) {
     return "[email protected]";
});

add_filter( \'wp_mail_from_name\', function( $from_name ) {
     return "testing";
});

add_filter( \'wp_mail_content_type\', function( $content_type {
     return \'text/html\';
});

// This one you may not need as WP defaults to UTF-8...
add_filter( \'wp_mail_charset\', function( $charset ) {
     return \'UTF-8\';
});

相关推荐

如何覆盖/扩展WordPress函数IS_EMAIL

所以wordpress的核心并没有真正更新unicode域的电子邮件许可。即使是像德语umlauts(äÄöÖÜß)这样的简单特殊字符也不允许出现在名称的域部分。因此,我一直在考虑向is\\U电子邮件功能添加一个具有高优先级的过滤器,并简单地返回结果。但它似乎并没有像我预期的那样发挥作用。以下是我尝试过的:// Code written in my themes functions.php function kk_email_validation_override( $email ) {&