이메일의 "보낸 사람"헤더를 "성명"<email@address.com> 형식으로 설정하십시오.


14

어떻게 변경할 수 있습니다 에서 형식으로 드루팔에서 보낸 이메일에서 헤더를 "Fullname" <email@address.com>?

과거에 Drupal 6 사이트에서 한 번에 할 수 있었지만 더 이상 해당 사이트에 액세스 할 수 없으며 그 방법을 기억하지 못합니다.

답변:


17

hook_mail_alter()사이트에서 발송 된 모든 이메일의 "보낸 사람"이메일 주소를 변경하는 데 사용할 수 있습니다 . 사용 된 이메일 주소는 질문 제목 인 RFC 표준을 준수해야합니다. 그러나 사용자 이름은 까다로울 수 있으며 잘못된 문자가 포함될 수 있습니다. 이메일 주소 형식올바르게 지정하기 위한 코드 샘플을 제공하는 D6 문서에 대한 의견이 있습니다 . 코드는 다음과 같습니다.

function yourmodule_mail_alter(&$message) {
  $message['from'] = $message['headers']['From'] = '"Full Name" <email@address.com>';
}

또한 "보낸 사람"주소 만 설정하면 모든 이메일 클라이언트에서 원하는 결과를 얻지 못할 수도 있습니다 ( Drupal 문제 대기열에 대한 설명 참조 ). 요구 사항에 따라 "보낸 사람", "오류"및 "답장"을 설정해야 할 수도 있습니다. 이러한 값은 $message위의 코드 샘플에서 변수 의 "헤더"에 있습니다.


6
감사. 미래 에이 답변에 도달하는 사람들에게는 반드시 마지막 단락에주의하십시오. 예를 들어 $ message [ 'from'] 설정만으로는 효과가 없었습니다. $ message [ 'headers'] [ 'From'] 값을 설정해야했습니다.
maxedison

1
@ maxedison에게 감사합니다. 네 말이 맞아 답변을 수정 중이며 수정이 수락되기를 바랍니다.
jcisio

$ message [ 'from'] 설정은 저를 위해 잘 작동했지만 (5 년 후) 이름에서 큰 따옴표를 사용하는 것을보십시오
autopoietic

11

이것은 Drupal 6에서 사이트 이름을 이메일에 추가하는 방법입니다. variable_get ( 'site_name, Drupal')을 원하는 사이트 이름으로 대체하십시오.

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

Drupal 7에서 hook_mail_alter () 함수가 변경되지 않았으므로 작동합니다.


이것은 나를 위해 일했습니다 Gmail & outlook. 감사합니다 :)
kalidasan

3

변경해야하는 설정과 관련하여 이것은 D7에서 여전히 문제입니다. 확실하지 않은 경우 hook_mail_alter에서 다음 코드를 사용하십시오.

$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.