изменение уведомлений от WordPress <wordpress> @ mydomain.net на что-то другое

15

Как изменить адрес электронной почты для уведомлений с WordPress @ mydomain.net на что-то другое.

Я хочу сделать это, потому что WordPress @ mydomain.net в конечном итоге помечается как нежелательная почта.

Благодарность

Даниил

Rarst
источник
1
Почему бы не добавить адрес в список надежных отправителей? тогда это не закончится в нежелательной почте.
t31os
1
Это будет работать для меня, но не для моих пользователей.
Это достаточно справедливо, не было ясно, что вы не только обращались к себе в первом вопросе.
t31os

Ответы:

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');

Измените Name на нужное имя, а email@Domain.com на желаемый адрес электронной почты. но если вы измените адрес электронной почты, большинство анти-спан-фильтров будет блокировать или спамить вашу почту для подмены.

Bainternet
источник
Я использовал форму отправки и она работает как рекламируется. Я также создал адрес электронной почты 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 и выполнять такие действия, как добавление ответа на адрес (показано выше).

Rohmann
источник