Respostas:
Você pode usar hook_mail_alter()
para alterar o endereço de email "de" de qualquer email enviado do seu site. O endereço de email usado precisa estar em conformidade com o padrão RFC, que é o título da sua pergunta. Mas os nomes de usuário podem ser complicados e podem conter caracteres ilegais. Há um comentário nos documentos do D6 que fornece um exemplo de código para formatar corretamente o endereço de email . Seu código seria algo como ...
function yourmodule_mail_alter(&$message) {
$message['from'] = $message['headers']['From'] = '"Full Name" <email@address.com>';
}
Além disso, lembre-se de que apenas definir o endereço "de" pode não ter os resultados desejados em todos os clientes de email (consulte a discussão na fila de problemas do Drupal ). Você também pode precisar definir "remetente", "erros para" e "responder para" com base em seus requisitos. Esses valores estão no "cabeçalho" da $message
variável do exemplo de código acima.
Este é o método do Drupal 6 para adicionar o nome do site ao email. Substitua variable_get ('site_name, Drupal') pelo nome completo do site que você deseja.
/**
* 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'];
}
}
a função hook_mail_alter () não foi alterada no Drupal 7, portanto, isso deve funcionar.
Gmail & outlook
. Obrigado :)
Com relação às configurações que você precisa alterar, esse ainda é um problema no D7. Em caso de dúvida, use o seguinte código no seu hook_mail_alter:
$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;