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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章