在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即可發送定義的郵件