2012-08-29 2 views
5

drupal_mail 함수 (D7)를 사용하여 HTML 전자 메일을 생성하려고하는 사용자 지정 모듈이 있습니다. 메일이 전송되고 심지어 text/html이 표시되기도하지만 HTMl이받은 편지함으로 들어가기 전에 어딘가에서 HTMl을 제거하는 것으로 보입니다.Drupal 7 drupal_mail이 HTML을 제거하고 있습니까?

첫째, 함수에서 내 타이틀/몸/기타 바르 짓고 있어요 및 사용자 정의 함수로 전송 :

$body = "We thought you'd like to know that ".$fullname." has marked your project as completed. 
    <br /><br /> 
    Please visit the link at <a href='http://".$_SERVER['HTTP_HOST']."/survey/customer/".$customer[0]->unique_id."'>http://".$_SERVER['HTTP_HOST']."/survey/customer/".$customer[0]->unique_id."</a> to take the survey."; 
    $returnMail = latch_send_mail('pro_realized',$customer[0]->customer_email,$user->mail,$title,$body); 

그리고 내가 가지고있는 latch_mail latch_send_email 기능 :

function latch_mail($key, &$message, $params) { 
    $headers = array(
    'MIME-Version' => '1.0', 
    'Content-Type' => 'text/html; charset=UTF-8; format=flowed', 
    'Content-Transfer-Encoding' => '8Bit', 
    'X-Mailer' => 'Drupal' 
); 

foreach ($headers as $key => $value) { 
    $message['headers'][$key] = $value; 
} 

$message['body'][] = $params['body']; 
$message['subject'] = $params['subject']; 
} 

function latch_send_mail($key,$to,$from,$title,$body,$headers='') { 
    $params['body']=$body; 
    $params['subject'] = t($title); 
    return drupal_mail('latch', $key, $to, language_default(), $params, $from,TRUE); 
} 

이메일에 내 태그 및 br 태그가 올 것으로 예상되지만, 우 같은 :

We thought you'd like to know that John Doe has marked your project as completed. Please visit the link at http://latch.local/survey/customer/34c91b8883cd70b32c65feb7adf9c393 [1] to take the survey. [1] http://latch.local/survey/customer/34c91b8883cd70b32c65feb7adf9c393 

어떻게 든 내 링크를 복용하고 완전히 BR 태그를 제거하는 동안 각주로 돌고

.

제공 할 수있는 도움을 주시면 감사하겠습니다. 감사!

답변

4

상자에서, Drupal은 HTML 전자 메일을 보낼 수 없습니다. Drupal이 HTML 전자 메일을 지원하려면 HTML 메일 모듈이 필요합니다. http://drupal.org/project/htmlmail 일단 모든 HTML을 그대로 보내야합니다.

0

여기에 완전한 설명이있는 대체 방법이 있습니다. 먼저 Mime Mail 모듈을 설치하고 사용 설정합니다. 사용 방법에 대한 자세한 지침은 README.txt을 참조하십시오. 나는 너에게 짧은 버전을 줄 것이다.

모듈에 Mime Mail을 사용하도록 설정해야합니다. 당신은 example.installhook_enable 또는 hook_update_N를 사용하여이 작업을 수행 할 수 있습니다

예 모듈 (examplekey 키) 클래스 : 당신이 admin/config/system/mailsystem에 갈 때

function example_enable() { 
    mailsystem_set(array(
    'example_examplekey' => 'MimeMailSystem', 
)); 
} 

당신은 새 항목이 모듈에 추가 된 것을 볼 수 있습니다

MimeMailSystem

이제

당신이 SPE 할 필요가 없습니다 cimey text/html 헤더를 더 이상 사용하지 않기 때문에 Mime Mail이 처리합니다. 당신이 원하는 경우가 아닌 HTML의 대안을 메일에 $message['plaintext']를 추가 할 수

$headers['Content-Type'] = ... 

을,하지만이 필요하지 않습니다 : 그래서 당신이 필요하지 않습니다.

그게 전부 야!