¿Por qué wp_mail () no me permite configurar el encabezado De: cuando lo haga el correo PHP antiguo ()?

32

Cuando uso wp_mail( $to, $subject, $message, $headers ) (con los valores implementados, por supuesto), el correo electrónico se envía con un nombre y un correo electrónico que no está configurado en ningún lugar que pueda encontrar (ni siquiera en la configuración de PHP o Apache). Sin embargo, usar mail( $to, $subject, $message, $headers ) funciona bien. ¿Qué podría estar pasando con wp_mail() para causar esto?

    
pregunta helenhousandi 10.02.2011 - 21:45

5 respuestas

43

Hola @helenyhou:

Puedes configurar el encabezado, pero no con un parámetro. WordPress utiliza "hooks" y los ganchos que necesita son 'wp_mail_from' y 'wp_mail_from_name' ganchos.

Aquí están los enlaces que podría agregar al archivo functions.php de su tema para modificar el encabezado "From:" cuando use wp_mail() a la dirección de correo electrónico Helen Hou-Sandi <helenyhou@example.com> :

add_filter('wp_mail_from','yoursite_wp_mail_from');
function yoursite_wp_mail_from($content_type) {
  return 'helenyhou@example.com';
}
add_filter('wp_mail_from_name','yoursite_wp_mail_from_name');
function yoursite_wp_mail_from_name($name) {
  return 'Helen Hou-Sandi';
}
    
respondido por el MikeSchinkel 10.02.2011 - 21:56
4

Bueno, si está utilizando el formato From: "Your Name" <youremail@example.com>\r\n en sus encabezados, no debería tener ningún problema (a menos que tenga un complemento instalado que invalide la función wp_mail).

Sin embargo, como dijo Mike, puede filtrar los valores finales con esos filtros, o simplemente puede instalar este complemento:

Enviar desde

Le dará una configuración de opciones para determinar qué nombre y correo electrónico usar en wp_mail.

    
respondido por el John P Bloch 10.02.2011 - 21:59
1

Lamento revivir una pregunta anterior, pero ¿no es mejor establecerla a través de los encabezados ?:

$subject  = "MyPlugin: Alert (".get_bloginfo('wpurl').")";
$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=".get_bloginfo('charset')."" . "\r\n";
$headers .= "From: MyPlugin <".$this->settings['from_address'].">" . "\r\n";
wp_mail($this->settings['notify_address'], $subject, $alertMessage, $headers);

De esa manera, no tiene que preocuparse por usar un filtro y luego eliminarlo después de wp_mail ().

    
respondido por el Brady 15.04.2011 - 17:29
1

Es un poco pirateado, pero también puedes usar la etiqueta de encabezado Reply To :

$headers = 'Reply-To: "Aaren A. Aarenson" <aaron@somemail.com>';

Lamentablemente, agrega la dirección de correo electrónico a la lista De, y responder significa que tendrás que eliminar manualmente la dirección configurada en el filtro wp_mail_from .

    
respondido por el Sjors Hijgenaar 14.09.2015 - 21:01
0

Tuve el mismo problema. Para mí, se supo que el proveedor de alojamiento (BlueHost) estaba evitando cambiar el campo desde. Aquí lo explican enlace .

Solucioné el problema agregando el correo electrónico a los buzones de correo de cPanel tal como dicen.

    
respondido por el Tigran 14.08.2015 - 15:33

Lea otras preguntas en las etiquetas