从Drupal CCK字段获取电子邮件并使用drupal_mail发送邮件

时间:2010-12-18 20:32:22

标签: email drupal cck drupal-hooks

您好我正在使用Jobsearch模块在Drupal 6中构建招聘网站。默认情况下,它会将应用程序发送到发布作业的用户的电子邮件地址。我的问题是所有工作都将由网站管理员发布 - 我需要将应用程序发送给这个管理员和CCK字段中指定的电子邮件地址(确切地说是CCK电子邮件字段)。

尝试提取CCK字段的值并使用它除了作业海报(管理员)的电子邮件,并使用drupal_mail发送但失败 - 电子邮件未发送到自定义CCK电子邮件字段。

这是我尝试(和排列)来自Jobsearch模块job.module文件:

/**
 * Implementation of hook_mail().
 */
function job_mail($key, &$message, $params) {  
  $result = theme('job_mail', $params['job_node'], $params['job_user'],   $params['resume_node'], $params['resume_user']);  
  $message['subject'] = $result['subject'];  
  $message['body'] = $result['body'];  
}  

function job_send_email($job_nid, $resume_nid) {  
  global $user;  

  $params['job_node']    = $job_node = node_load(array('nid' => $job_nid));  
  $params['job_user']    = $job_user = user_load(array('uid' => $job_node->uid));  
  $params['resume_node'] = $resume_node = node_load(array('nid' => $resume_nid));  
  $params['resume_user'] = $resume_user = user_load(array('uid' => $resume_node->uid));  

  $from = $resume_user->mail;  
  $language = user_preferred_language($user);  


  $contactEmail = node_load($field_contact_email[0][nid]);  

  $to = "$job_user->mail, $contactEmail";     

  drupal_mail('job', 'job_apply', $to, $language, $params, $from);  

  watchdog('job', t("%name applied for job $job_node->nid.",  
    array('%name' => theme('placeholder', $resume_user->name . " <$from>"))));  
}  

这似乎应该是一件简单的事情,但我很挣扎!

1 个答案:

答案 0 :(得分:0)

我认为破解了:)这会发送给海报/用户的电子邮件和我在CCK电子邮件字段中指定的电子邮件。

function job_send_email($job_nid, $resume_nid) {
  global $user;

  $params['job_node']    = $job_node = node_load(array('nid' => $job_nid));  
  $params['job_user']    = $job_user = user_load(array('uid' => $job_node->uid));  
  $params['resume_node'] = $resume_node = node_load(array('nid' => $resume_nid));  
  $params['resume_user'] = $resume_user = user_load(array('uid' => $resume_node->uid));  


  $contactEmail = $job_node->field_contact_email[0]['email'];  

  $from = $resume_user->mail;  
  $language = user_preferred_language($user);  



  $to = "$job_user->mail, $contactEmail";     

  drupal_mail('job', 'job_apply', $to, $language, $params, $from);  

  watchdog('job', t("%name applied for job $job_node->nid.",  
    array('%name' => theme('placeholder', $resume_user->name . " <$from>"))));  
}