2011-02-28 33 views
0

下面是我的聯繫我們模塊,Drupal的電子郵件問題

正在試圖發送電子郵件,電子郵件的猜測沒有發送成功,

有我的片斷任何錯誤

<?php 

function contactus_menu() { 
    $items['contactus/reachus'] = array(
    'title' => 'Contact US', 
    'page callback' => 'contactus_description', 
    'access callback' => TRUE, 
    'expanded' => TRUE, 
); 

    return $items; 
} 

    function contactus_description(){ 

    return drupal_get_form('contactus_form'); 
} 

function contactus_form() { 
$form['#attributes']['enctype'] = 'multipart/form-data'; 
    $form['fullname'] = array(
    '#type' => 'textfield', 
    '#title' => t('Enter your full name'), 
    '#description' => t('Please enter your name here'), 
    '#required' => TRUE, 
); 
    $form['emailid'] = array(
    '#type' => 'textfield', 
    '#title' => t('Enter your Email-ID'), 
    '#description' => t('Please enter your Email-ID'), 
    '#required' => TRUE, 
); 
    $form['message'] = array(
    '#type' => 'textarea', 
    '#title' => t('Enter your message'), 
    '#default_value' => variable_get('Please enter your message', ''), 
    '#cols' => 60, 
    '#rows' => 5, 
    '#description' => t('Please write your mssage'), 
); 
    $form['file_upload'] = array(
    '#title' => t('Upload file'), 
    '#required' => TRUE, 
    '#type' => 'file', 
); 
    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => t('Reach Me '), 
); 
    return $form; 
} 

function contactus_form_submit($form_id, $form_values) { 
    $message = 'You have submitted the ' . $form_id . ' form which contains the following data:<pre>' . print_r($form_values,true) . '</pre>'; 
    $fullname = $form_values['values']['fullname']; 
    $emailid = $form_values['values']['emailid']; 
    $email_flag = valid_email_address($emailid); 

    $message = $form_values['values']['message']; 
    $message = $fullname . "\n" .$emailid. "\n" .$message; 

    $validators = array(); 
    $dest = 'file'; 
    $file = file_save_upload('file_upload', $validators, $dest); 
    //$file will be 0 if the upload doesn't exist, or the $dest directory 
    //isn't writable 
    if ($file != 0) { 
    $dest_path = 'contactus'; 
    $result = file_copy($file, $dest_path, FILE_EXISTS_RENAME); 
    if ($result == 1) { 
     //Success, $file object will contain a different (renamed) 
     //filename and filepath if the destination existed 

     $file_msg = "successfully uploaded\n"; 
    } 
    else { 
     //Failure 
     $file_msg = "failed uploaded\n"; 
    } 
    } 
    else { 
    form_set_error('myform', t("Failed to save the file.")); 
    } 
    $message = $fullname."\n".$emailid." ---$email_flag ----\n".$message."\n".$file_msg; 
    $to = '[email protected]'; 
    $from = '[email protected]'; 
    $subject = st('New Drupal site created!'); 

drupal_mail('university-profile', $to, $subject, $message, $from); 
} 

?> 
+0

您是否檢查過看門狗日誌(報告>最近的日誌條目)是否有錯誤?你有沒有檢查mailq的錯誤? http://linux.about.com/library/cmd/blcmdl1_mailq.htm –

回答

0

你打電話帶有錯誤參數的drupal_mail。在Drupal中發送郵件的正確方法要求您實施hook_mail掛鉤,其中根據drupal_mail發送的一個鍵和一些參數返回郵件的標題和主題。

看看這裏一個簡單的例子:http://api.lullabot.com/drupal_mail

但是,如果你想跳過drupal_mail您可以使用此:

<?php 
    $message = array(
     'to' => '[email protected]', 
     'subject' => t('Example subject'), 
     'body' => t('Example body'), 
     'headers' => array('From' => '[email protected]'), 
    ); 

    drupal_mail_send($message); 

確保您傳遞的所有文字,通過T(),因爲drupal_mail_send不關心本地化。

+0

與此我可以發送N長度的電子郵件正文?如何添加附件 – Bharanikumar