Как изменить адрес email-уведомлений WordPress с wordpress@mydomain.net на другой

18 мар. 2011 г., 14:21:07
Просмотры: 16.9K
Голосов: 15

Как изменить адрес email-уведомлений WordPress с wordpress@mydomain.net на другой.

Мне нужно это сделать, потому что письма с wordpress@mydomain.net часто попадают в спам.

Спасибо,

Даниэль

3
Комментарии

Почему бы не добавить адрес в список безопасных отправителей? Тогда письма не будут попадать в спам.

t31os t31os
18 мар. 2011 г. 14:31:04

Для меня это сработает, но не для моих пользователей.

User User
19 мар. 2011 г. 04:54:51

Справедливо, изначально было неясно, что вы говорите не только о себе в первом вопросе.

t31os t31os
19 мар. 2011 г. 11:13:13
Все ответы на вопрос 4
3
23

Я использую очень похожий подход, как у Джона П. Блоха и 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' );
}
18 мар. 2011 г. 17:17:11
Комментарии

Очень элегантное решение. Отлично!

John P Bloch John P Bloch
21 мар. 2011 г. 19:51:35

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

Lorenz Meyer Lorenz Meyer
17 дек. 2018 г. 09:51:09

@LorenzMeyer Да, это отдельный PHP-файл, который нужно сохранить в директорию плагинов вашей установки. Там вы сможете его активировать. t5_ был моим личным префиксом в то время. :)

fuxia fuxia
17 дек. 2018 г. 12:53:42
0

Есть отличный плагин, который делает это за вас, под названием 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-адрес, и всё готово.

18 мар. 2011 г. 16:48:14
1

здесь:

    //функция для имени отправителя 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-адрес, большинство антиспам-фильтров могут заблокировать или пометить ваше письмо как спам из-за подмены отправителя.

18 мар. 2011 г. 16:48:24
Комментарии

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

User User
19 мар. 2011 г. 04:52:34
0

Существующие ответы предлагают лучший способ сделать это, однако я хочу упомянуть альтернативный вариант.

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 и выполнять такие действия, как добавление адреса для ответа (показано выше)

10 окт. 2013 г. 03:03:25