Как изменить адрес email-уведомлений WordPress с wordpress@mydomain.net на другой
Как изменить адрес email-уведомлений WordPress с wordpress@mydomain.net на другой.
Мне нужно это сделать, потому что письма с wordpress@mydomain.net часто попадают в спам.
Спасибо,
Даниэль

Я использую очень похожий подход, как у Джона П. Блоха и Bainternet, только немного более гибкий, чтобы мне не приходилось менять почтовый адрес для каждого клиента:
<?php # -*- coding: utf-8 -*-
/*
* Plugin Name: Filter System From Mail
* Description: Устанавливает почтовый адрес отправителя в WordPress на email первого администратора, а имя отправителя — на название блога.
* Version: 2012.08.30
* Author: Fuxia Scholz
* Author URI: https://fuxia.me
* License: MIT
*/
if ( ! function_exists( 't5_filter_system_from_mail' ) )
{
/**
* Email первого администратора или название блога, в зависимости от текущего фильтра.
*
* Смотрите wp-includes/pluggable.php::wp_mail()
*
* @param $input Имя или email-адрес
* @return string
*/
function t5_filter_system_from_mail( $input )
{
// если это не стандартный адрес, вероятно, уведомление о комментарии.
if ( 0 !== stripos( $input, 'wordpress' ) )
return $input; // Не автоматически сгенерировано
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' );
}

@fuxia Я новичок в Wordpress. Куда вставлять этот код? Это новый самостоятельный плагин? Если да, то как его установить? И t5_
- это ваш личный префикс для плагина? Или это как-то важно?

Есть отличный плагин, который делает это за вас, под названием Send From. Однако, если вы хотите реализовать это самостоятельно, это очень просто. Чтобы изменить email-адрес, добавьте фильтр к '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-адрес, и всё готово.

здесь:
//функция для имени отправителя email
function my_wp_mail_from_name($name) {
return 'Имя';
}
//функция для email отправителя
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" на нужный email-адрес. Однако, если вы измените email-адрес, большинство антиспам-фильтров могут заблокировать или пометить ваше письмо как спам из-за подмены отправителя.

Я использовал Send Form, и он работает так, как заявлено. Также я создал email-адрес cas@mydomain.net и настроил Send Form для использования его в автоматических уведомлениях сайта. Тестовое письмо, отправленное на мой тестовый аккаунт пользователя, не было помечено спам-фильтром. Успех! Теперь мне нужно протестировать с реальными пользователями. Спасибо!

Существующие ответы предлагают лучший способ сделать это, однако я хочу упомянуть альтернативный вариант.
add_action('phpmailer_init','modify_phpmailer');
function modify_phpmailer($phpmailer) {
$phpmailer->From = "Полное имя";
$phpmailer->FromName = "from@address.com";
$phpmailer->AddReplyTo("replyto@address.com");
}
Это происходит после фильтров *wp_mail_from* и *wp_mail_from_name*. Таким образом, вы можете принудительно изменить настройки и предотвратить их модификацию другими плагинами. Вы также можете работать напрямую с объектом phpmailer и выполнять такие действия, как добавление адреса для ответа (показано выше)
