mengubah email pemberitahuan dari WordPress <wordpress> @ mydomain.net ke yang lain

15

Bagaimana cara mengubah alamat email pemberitahuan dari WordPress @ mydomain.net ke yang lain.

Saya ingin melakukan ini karena WordPress @ mydomain.net akhirnya ditandai sebagai junk mail.

Terima kasih

Daniel

Jarang
sumber
1
Mengapa tidak menambahkan alamat ke daftar pengirim aman Anda? maka itu tidak akan berakhir di junk mail.
t31os
1
Itu akan bekerja untuk saya tetapi tidak untuk pengguna saya.
Itu cukup adil, tidak jelas bahwa Anda tidak hanya merujuk pada diri sendiri dalam pertanyaan pembukaan.
t31os

Jawaban:

23

Saya menggunakan pendekatan yang sangat mirip seperti John P Bloch dan Bainternet, hanya sedikit lebih fleksibel, jadi saya tidak perlu mengubah alamat email untuk klien apa pun:

<?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' );
}
fuxia
sumber
6
Solusi yang sangat elegan. Bagus!
John P Bloch
@ Fluxia Saya seorang pemula Wordpress. Kemana kode ini pergi? Apakah ini plugin baru? Jika ya, bagaimana cara menginstalnya? Dan t5_apakah ini awalan plugin pribadi Anda? Atau apakah itu penting?
Lorenz Meyer
@LorenzMeyer Ya, file PHP terpisah, disimpan di direktori plugin instalasi Anda. Di sana Anda dapat mengaktifkannya. t5_adalah awalan pribadi saya saat itu. :)
fuxia
9

Ada plugin bagus yang melakukan ini untuk Anda disebut Kirim Dari . Namun, jika Anda ingin menggulung ini sendiri, itu sangat sederhana. Untuk mengubah alamat email, tambahkan filter 'wp_mail_from'seperti:

function just_use_my_email(){
  return '[email protected]';
}

add_filter( 'wp_mail_from', 'just_use_my_email' );

Dan Anda juga dapat mengubah nama pengirim menggunakan 'wp_mail_from_name'filter seperti itu (ini sepenuhnya opsional):

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

add_filter( 'wp_mail_from_name', 'just_use_my_email_name' );

Hanya menukar nilai palsu dengan alamat email asli Anda dan Anda siap melakukannya.

John P Bloch
sumber
4

sini:

    //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 protected]';
}

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

Ubah Nama menjadi nama yang Anda inginkan dan [email protected] ke alamat email yang Anda inginkan. tetapi jika Anda mengubah alamat email, sebagian besar filter anti span akan memblokir atau mengirim spam email Anda karena spoofing.

Bainternet
sumber
Saya menggunakan Kirim Formulir dan berfungsi seperti yang diiklankan. Saya juga membuat alamat email [email protected] dan mengonfigurasi Formulir Kirim agar dapat digunakan untuk pemberitahuan situs otomatis. Email pengujian yang saya kirim ke akun pengguna pengujian saya tidak ditandai oleh filter spam. Keberhasilan! Sekarang saya harus menguji dengan pengguna saya. Terima kasih!
4

Jawaban yang ada adalah cara yang lebih baik untuk melakukan ini, namun ada alternatif yang ingin saya sebutkan.

add_action('phpmailer_init','modify_phpmailer');

function modify_phpmailer($phpmailer) {

    $phpmailer->From = "Full Name";
    $phpmailer->FromName = "[email protected]";

    $phpmailer->AddReplyTo("[email protected]");
}

Ini terjadi setelah filter * wp_mail_from * dan * wp_mail_from_name *. Jadi dengan ini, Anda dapat memaksa perubahan dan mencegah plugin lain memodifikasinya. Anda juga dapat bekerja secara langsung dengan objek phpmailer dan melakukan hal-hal seperti menambahkan balasan ke alamat (ditunjukkan di atas)

rohmann
sumber