将通知电子邮件从WordPress <wordpress> @ mydomain.net更改为其他内容


15

如何将通知电子邮件地址从WordPress @ mydomain.net更改为其他名称。

我想这样做是因为WordPress @ mydomain.net最终被标记为垃圾邮件。

谢谢

丹尼尔


1
为什么不将地址添加到您的安全发件人列表中?那么它就不会出现在垃圾邮件中。
t31os 2011年

1
那对我有用,但对我的用户不起作用。

这很公平,还不清楚您是否在开头的问题中不仅指自己。
t31os 2011年

Answers:


23

我使用了一种非常相似的方法,例如John P Bloch和Bainternet,只是稍微灵活一点,所以我不必为任何客户端更改邮件地址:

<?php # -*- coding: utf-8 -*-
/*
 * Plugin Name: Filter System From Mail
 * Description: Sets the WP from mail address to the first admin’s mail and the from name to blog name.
 * Version:     2012.08.30
 * Author:      Fuxia Scholz
 * Author URI:  https://fuxia.me
 * License:     MIT
 */

if ( ! function_exists( 't5_filter_system_from_mail' ) )
{
    /**
     * First admin's e-mail address or blog name depending on current filter.
     *
     * See wp-includes/pluggable.php::wp_mail()
     *
     * @param  $input Name or email address
     * @return string
     */
    function t5_filter_system_from_mail( $input )
    {
        // not the default address, probably a comment notification.
        if ( 0 !== stripos( $input, 'wordpress' ) )
            return $input; // Not auto-generated

        return get_option( 'wp_mail_from' === current_filter()
            ? 'admin_email' : 'blogname' );
    }

    add_filter( 'wp_mail_from',      't5_filter_system_from_mail' );
    add_filter( 'wp_mail_from_name', 't5_filter_system_from_mail' );
}

6
非常优雅的解决方案。真好!
约翰·布洛赫

@fuxia我是Wordpress新手。该代码在哪里?这是一个普通的新插件吗?如果是,该如何安装?这t5_是您的个人插件前缀吗?还是有关系吗?
洛伦兹·梅耶

@LorenzMeyer是的,一个单独的PHP文件,保存在安装的插件目录中。您可以在那里激活它。t5_当时是我的个人前缀。:)
fuxia

9

有个很棒的插件,称为Send From。但是,如果您想自己动手做,那就太简单了。要更改电子邮件地址,请添加过滤器,'wp_mail_from'如下所示:

function just_use_my_email(){
  return 'my.email@domain.com';
}

add_filter( 'wp_mail_from', 'just_use_my_email' );

您还可以使用'wp_mail_from_name'过滤器来更改发件人的姓名,如下所示(这是完全可选的):

function just_use_my_email_name(){
  return 'My Real Name';
}

add_filter( 'wp_mail_from_name', 'just_use_my_email_name' );

只需将伪造的值替换为您的真实电子邮件地址,就可以了。


4

这里:

    //email from name function
function my_wp_mail_from_name($name) {
    return 'Name';
}

//email from email function
function my_wp_mail_from($content_type) {
  return 'email@Domain.com';
}

add_filter('wp_mail_from','my_wp_mail_from');
add_filter('wp_mail_from_name','my_wp_mail_from_name');

将“名称”更改为所需的名称,将“ email@Domain.com”更改为所需的电子邮件地址。但是,如果您更改电子邮件地址,则大多数反跨度过滤器都会阻止或垃圾邮件进行欺骗。


我使用了“发送表单”,它的功能与广告一样。我还创建了一个电子邮件地址cas@mydomain.net,并配置了发送表单以将其用于自动站点通知。我发送到测试用户帐户的测试电子邮件未被垃圾邮件过滤器标记。成功!现在,我必须与用户进行测试。谢谢!

4

现有的答案是实现此目的的更好方法,但是我想提一个替代方法。

add_action('phpmailer_init','modify_phpmailer');

function modify_phpmailer($phpmailer) {

    $phpmailer->From = "Full Name";
    $phpmailer->FromName = "from@address.com";

    $phpmailer->AddReplyTo("replyto@address.com");
}

这是 * wp_mail_from *和* wp_mail_from_name *过滤器之后发生的。因此,您可以强制进行更改并阻止其他插件对其进行修改。您还可以直接使用phpmailer对象并执行诸如添加地址回复的操作(如上所示)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.