在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即可发送定义的邮件