问题描述

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

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

谢谢

丹尼尔

最佳解决方案

我使用像 John P Bloch 和 Bainternet 这样非常相似的方法,只是稍微有点灵活,所以我不必更改任何客户端的邮件地址:

<?php # -*- coding: utf-8 -*-
/*
 * Plugin Name: T5 Filter System From Mail
 * Description: Sets the WP from mail address to the first admin』s mail and the from name to blog name.
 * Plugin URI:  http://toscho.de/?p=2201
 * Version:     2012.08.30
 * Author:      Thomas Scholz
 * Author URI:  http://toscho.de
 * 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' );
}

次佳解决方案

有一个伟大的插件,这样做你叫 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' );

只是交换真实的电子邮件地址的假值,你很好去。

第三种解决方案

这里:

    //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 更改为您想要的电子邮件地址。但如果您更改电子邮件地址,那么大多数反跨过滤器将阻止或垃圾邮件发送给您的邮件进行欺骗。

第四种方案

现有的答案是一个更好的方式来做到这一点,不过还有一个我想提到的方法。

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 对象进行工作,并执行诸如向地址添加回复 (如上所示)

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。