Respuestas:
Puede usar hook_mail_alter()
para cambiar la dirección de correo electrónico "desde" de cualquier correo electrónico enviado desde su sitio. La dirección de correo electrónico utilizada debe cumplir con el estándar RFC, que es el título de su pregunta. Pero los nombres de usuario pueden ser complicados y pueden contener caracteres ilegales. Hay un comentario sobre los documentos D6 que proporciona una muestra de código para formatear correctamente la dirección de correo electrónico . Su código se vería algo así como ...
function yourmodule_mail_alter(&$message) {
$message['from'] = $message['headers']['From'] = '"Full Name" <email@address.com>';
}
Además, tenga en cuenta que solo configurar la dirección "de" puede no tener los resultados deseados en todos los clientes de correo electrónico (consulte la discusión sobre la cola de problemas de Drupal ). Es posible que también deba configurar "remitente", "errores a" y "responder a" según sus requisitos. Esos valores están en el "encabezado" de la $message
variable de la muestra de código anterior.
Este es el método de Drupal 6 para agregar el nombre del sitio al correo electrónico. Sustituya variable_get ('nombre_sitio, Drupal') con el nombre completo del sitio que desee.
/**
* Implementation of hook_mail_alter().
* Here we allow the site name to be used as the senders name for outgoing email.
* see http://drupal.org/node/209672
*/
function mymodule_mail_alter(&$message){
$default_from = variable_get('site_mail', ini_get('sendmail_from'));
if($message['from'] == $default_from){
$message['from'] = '"'. variable_get('site_name', 'Drupal') .'" <'. $default_from .'>';
$message['headers']['From'] = $message['headers']['Sender'] = $message['headers']['Return-Path'] = $message['headers']['Errors-To'] = $message['headers']['Reply-To'] = $message['from'];
}
}
la función para hook_mail_alter () no ha cambiado en Drupal 7, por lo que debería funcionar.
Gmail & outlook
. Gracias :)
En cuanto a la configuración que tiene que cambiar, esto sigue siendo un problema en D7. En caso de duda, use el siguiente código en su hook_mail_alter:
$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;