Drupal6中 使用hook_mail和drupal_mail發送郵件

在Drupal中,有一個鉤子實現了郵件的發送接口,就是hook_mail($key, &$message, $params) 鉤子,詳見:http://api.drupal.org

 

/api/function/hook_mail/6 這個鉤子可以定義你要發送的郵件實體,即郵件標題和內容,一般放在你定義的.module文件裏,然後就是在你需要發送郵件的程序位置處調用

 

drupal_mail($module , $key , $to, $language , $params = array(), $from = NULL, $send = TRUE)  詳見

 

http://api.drupal.org/api/function/drupal_mail/6  這個方法將按你傳入的郵件目的地址發送hook_mail定義的郵件

 

下面我的實例:

 

首先在你的drupal中配置好郵件發送環境,一個非常好用的辦法是使用smtp模塊,然後在後臺設置一下即可,具體配置詳見 http://drupalchina.org/node/2817

 

配置好郵件環境後可以書寫發郵件的代碼了,比如我寫了一個module叫做credit,然後在我的credit.module中定義mail鉤子:

 

//郵件
function credit_mail($key, &$message, $params) {
    $language = $message['language'];
    $variables = user_mail_tokens($params['account'], $language);
    switch($key) {


      case 'notice':
         $message['subject'] = t('搖滾青春網站', $variables, $language->language);//郵件標題
         $message['body'][] = t("敬愛的用戶/n/n歡迎您的到來,希望您能在我們的網站瀏覽到您想要的信息!.", $variables, 

         $language->language);//郵件正文
      break;


    }
}

 

 

然後當我的程序中希望調用併發送這個case爲notice的郵件鉤子時,可以調用

 

$params = array();

 

drupal_mail('credit', 'notice', $valid_email, language_default(), $params)

 

參數說明:

         1   程序中名爲credit的模塊

         2   調用其中名爲notice的郵件實體

         3   $valid_email是我想要發送到的目的地郵件地址

         4   本網站的默認語言,建議不用修改,只用language_default()函數即可

         5   發送的附加參數,一般留空,有需要就加

 

當然在credit_mail的switch語句中可以寫多個case,以便發送不同的郵件,在drupal_mail的第二個參數中選擇這個case即可發送定義的郵件

發佈了37 篇原創文章 · 獲贊 0 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章