2012-11-06 1 views
4

Drupal 7로 이메일을 보내려고합니다. 이메일은 내 이메일 계정으로 보내지 만, 본문과 제목은 비어 있습니다. 이유를 설명해주세요. 고맙습니다. drupal 7 : 메일이 전송되었지만 본문과 제목이 비어 있습니다.

function get_friendform($form,&$form_submit){ 
    $form['fullname'] = array(
     '#title' => t('Your Full Name: '), 
     '#type' => 'textfield', 
     '#required' => TRUE, 
     '#size' => 30, 
    ); 

    $form['email'] = array(
     '#title' => t('Your Full Email: '), 
     '#type' => 'textfield', 
     '#required' => TRUE, 
     '#size' => 30, 
    ); 

    $form['friend_email'] = array(
     '#title' => t('Your Friend Email: '), 
     '#type' => 'textfield', 
     '#required' => TRUE, 
     '#size' => 30, 
    ); 


    $form['submit'] = array(
     '#type' => 'submit', 
     '#value' => 'submit', 
     '#submit' => array('sendform_form_submit') 

    ); 

    return $form; 
} 



function sendform_form_submit($form,&$form_submit){ 
    $fullname = $form_submit['values']['fullname']; 
    $email = $form_submit['values']['email']; 
    $friend_email = $form_submit['values']['friend_email']; 
    $current_page = $GLOBALS['base_url'] .'/'.current_path(); 

    $mailto = '[email protected]'; 
    $mailfrom = '[email protected]'; 
    $subject = "Links to event"; 
    $body = $current_page; 
    $params = array(
     'body' => $body, 
     'subject' => $subject, 
    ); 

    if (drupal_mail('get_friendform', 'send_link', $mailto, language_default(),$params,$mailfrom,TRUE)) { 
     drupal_set_message(t('Your message was sent successfully!!!')); 
    } 

} 



function sendform_mail($key,&$message,$params) { 
    $language = $message['language']; 
    switch ($key) { 
     case 'send_link': 
      $message['subject']=t($params['subject'], $var, $language->language); 
      $message['body'][]=$params['body']; 
      $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed'; 
     break; 
    } 

} 

새로운 코드

function sendform_form_submit($form,&$form_submit){ 
    $fullname = $form_submit['values']['fullname']; 
    $email = $form_submit['values']['email']; 
    $friend_email = $form_submit['values']['friend_email']; 
    $current_page = $GLOBALS['base_url'] .'/'.current_path(); 

    $mailto = '[email protected]'; 
    $mailfrom = '[email protected]'; 
    $subject = "Links to event"; 
    $params =''; 
    $body[] = $current_page; 
    $mail_message = drupal_mail('send_form', 'some_key', $mailto, language_default(), $params, $mailfrom, TRUE); 
    $mail_message['subject'] = $subject; 
    $mail_message['body'] = $body; 

    $mail_system = drupal_mail_system($module, $key); 
    $mail_message = $mail_system->format($mail_message); 

    $mail_message['result'] = $mail_system->mail($mail_message); 

} 

답변

6

사용하여 다음 코드 예제를 사용하여 이메일을 보내 대단히 감사합니다

이 양식은 다음과 같습니다 아래

내 코드입니다 drupal :

$body = array(); 
$body[] = "Mail body"; 
$mail_message = drupal_mail($module, $key, $to, $lang, $params, $from, $send); 
$mail_message['subject'] = $subject; 
$mail_message['body'] = $body; 

$mail_system = drupal_mail_system($module, $key); 
$mail_message = $mail_system->format($mail_message); 

$mail_message['result'] = $mail_system->mail($mail_message); 

업데이트 1 :

코드에서 문제가있다. 함수 sendform_mail()을 만들었고 결코 호출하지 않았습니다.

위의 코드 예제는 양식 제출 콜백 sendform_form_submit()에서 사용할 수 있습니다. 이것은 훨씬 간단

업데이트 2 : 마지막 줄 $mail_message['result']까지 보내는 메일을 실속해야하기 때문에

코드에서
$mail_message = drupal_mail('send_form', 'some_key', $mailto, language_default(), $params, $mailfrom, TRUE); 

는, false에 마지막 값을 변경합니다.

희망이 작동 ... 무하마드.

+0

안녕하세요, 대단히 감사합니다. 하지만 어떤 함수와 함께 코드를 사용해야합니까? 감사합니다 –

+0

답변이 업데이트되었습니다. 친절하게 다시 확인하십시오. –

+0

안녕하세요, 구현했습니다. 그것은 작동하지만, 그것은 하나의 올바른 이메일과 하나의 여분의 빈 이메일을 제공합니다. 위의 코드를 send_form_form_submit()에 포함시키고 send_form_mail()을 삭제했습니다. –