更改默认wp_mail发件人,不影响重力表单

时间:2015-02-17 作者:Kenny J

我有一个问题,关于在默认wp\\U邮件通知(例如,丢失密码响应)上更改默认发件人的名称/电子邮件,但不影响重力表单传递的通知。

我发现了一些关于更改名称/电子邮件默认值的线程,这就是我最终使用的。将默认发件人从“Wordpress”更改为“Wordpress”确实可以正常工作[email protected]\'。

// Change default WP email sender
add_filter(\'wp_mail_from\', \'new_mail_from\');
add_filter(\'wp_mail_from_name\', \'new_mail_from_name\');

function new_mail_from($old) {
return \'[email protected]\';
}
function new_mail_from_name($old) {
return \'Site Admin\';
}
但它最终也改变了重力表单传递的所有表单提交,因为重力表单只使用wp\\U邮件来处理完成的表单提交。重力表单提交应保留用户在填写表单时输入的发件人姓名/电子邮件。此信息存储在邮件头中,并传递给wp\\U mail进行发送。

有没有办法修改该功能,使其只影响通过默认地址发送的任何邮件(Wordpress&;[email protected])?也许是某种搜索/替换如果SMTP发送有帮助并且更安全/可靠,我也愿意使用SMTP发送。不幸的是,我只是不能流利地使用PHP来自己编写函数。

3 个回复
SO网友:Kenny J

我想我在另一个论坛上找到了答案,该论坛讨论了使用Contact Form7的问题,与我遇到的问题相同。

这就是我从那条线中得到并尝试的结果。它看起来确实有效,而且似乎只针对来自默认“Wordpress”发件人姓名/电子邮件的电子邮件。

// Change default WP email sender
add_filter(\'wp_mail_from\', \'doEmailFilter\');
add_filter(\'wp_mail_from_name\', \'doEmailNameFilter\');

function doEmailFilter($email_address){
if($email_address === "[email protected]")
    return \'[email protected]\';
else
    return $email_address;
}
function doEmailNameFilter($email_from){
if($email_from === "WordPress")
    return \'Site Admin\';
else
    return $email_from;
}
如果有更好的方法,请告诉我。抱歉,如果很明显。。。

SO网友:Hannes

几周前,我遇到了一个相关的问题,并编写了一个插件。WP-HTML Mail 现在不支持重力表单,但如果您决定将表单更改为忍者表单,该插件非常适合您。我为插件添加了检测器,以找出哪个插件刚刚发送了邮件。可以为检测到的插件打开/关闭更改格式和发件人。

SO网友:Jason Hendriks

我有一个SMTP插件,可以设置默认的发件人地址和发件人名称,但仍然允许插件(如Gravity表单)覆盖这些值。

https://wordpress.org/plugins/postman-smtp/

尽管如此,根据您的电子邮件帐户所属的用户,将发件人电子邮件地址更改为与您的身份验证不同的值可能有助于将您的电子邮件标记为垃圾邮件。即Gmail、Hotmail和Yahoo Mail。

结束

相关推荐