메일 송수신 실패시 리턴 메일을 받도록 Return-Path 지정하기
메일 송수신 실패시 리턴 메일을 받도록 Return-Path 지정하기
메일 수신주소나 서버의 이상으로 에러 메일이 반송되는 경우,
이를 Return-Path라는 헤더 정보에 담아둔 주소로 보낼 수 있다.
그런데 보통의 웹호스팅 사이트들이 이를 코딩에서 조정하는 것을
우선으로 하지 않고 해당 서버명이 들어간 메일어드레스로 강제지정하는 경우가 많다.
http://drupal.org/project/returnpath
이런 경우에 Return-Path 모듈을 사용하면,
드루팔 메일 센드 drupal_mail_send함수를 이용한 Return-Path의 지정이 가능하다.
--- 2010.09 추가 ---
최근 한 프로젝트에서, 리턴 패스가 제대로 작동하지 않고 호스팅 회사의 주소가 그대로 보이는 경우가 있었다. 소스 상에도 모듈 설정 상에도 문제는 없었다.
한참 조사한 뒤에 알았는데 - "모듈의 해제 후 재설정"에도 무반응이었으나 -
"모듈의 해제 후 언인스톨!(모듈 화면에 있다. 디비 설정도 몇몇 청소한다)하고 재설정"했더니 문제 현상이 고쳐졌다.
귀한 정보를 주신 ta님에게 감사 드린다.
- Drupal Major Version:
- module:
- 관련 분야:
- Login to post comments
댓글
최근에 메일관련 모듈인 sendmail모듈 대신
$MAIL_ADDR_FROM = "reply-to-sample@bulabula-test.com"; $headers = array( 'MIME-Version' => '1.0', 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes', 'Content-Transfer-Encoding' => '8Bit', 'Return-Path' => $MAIL_ADDR_FROM, 'Reply-To' => $MAIL_ADDR_FROM, 'X-Mailer' => 'Drupal', 'from' => $MAIL_ADDR_FROM, ); // $body : Mail Body. $message = array( 'body' => $body, 'headers' => $headers, ); // $to : Mail Address for Recipient. $message = array_merge($to, $message); drupal_mail_send( $message );
위 리턴 패스를
위 리턴 패스를 적용한 발송 소스 예제입니다.
발신자(송신자)의 주소가 Hosting 회사의 주소 대신에
소스에 지정한 메일 주소로 바뀝니다.
$MAIL_ADDR_FROM = "reply-to-sample@bulabula-test.com";
// Build the default headers
$headers = array(
'MIME-Version' => '1.0',
'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes',
'Content-Transfer-Encoding' => '8Bit',
'Return-Path' => $MAIL_ADDR_FROM,
'Reply-To' => $MAIL_ADDR_FROM,
'X-Mailer' => 'Drupal'
);
// $body : Mail Body.
$message = array(
// 'id' => 'mail_notice',
'from' => $MAIL_ADDR_FROM,
// 'language' => user_preferred_language($user_info),
'body' => $body,
'headers' => $headers,
);
// $to : Mail Address for Recipient.
$message = array_merge($to, $message);
drupal_mail_send( $message );