【发布时间】:2014-08-21 02:05:44
【问题描述】:
我已经多次看到这里提出的问题,但似乎没有一个解决方案适合我,所以我将再次发布。
我正在尝试将文档附加到 drupal 中的电子邮件。我有一个包含文件字段的自定义表单。我的文件上传工作正常,我确认了文件的路径。我在 Drupal 中安装了 MIME 和邮件系统模块。我为项目继承的自定义模块添加了一个 _mail 函数。根据我在示例中看到的内容,这就是我的方式:
function champs_admin_mail($key, &$message, $params) {
$attachment = array(
'filecontent' => DRUPAL_ROOT .'/sites/our.website.com/files/'.$params['upload'],
'filename' => $params['upload'],
'filemime' => $params['filemime']
);
$langcode = $message['language']->language;
$message['subject'] = $params['subject'];
$message['body'][] = $params['body'];
$message['params']['attachments'][] = $attachment;
}
在我的表单提交中,我有这个用于撰写电子邮件并附加文件的功能。似乎一切正常,但没有附件。
function champs_admin_email_form_submit($form, &$form_state)
{
set_time_limit(1000);
//Database stuff here
if($form_state['values']['upload']!=''){
$attachment = array(
'filecontent' => DRUPAL_ROOT .'/sites/our.website.com/files/'.$form_state['values']['upload'],
'filename' => $form_state['values']['upload'],
'filemime' => $form_state['values']['filemime']
);
}else{
$attachment = array();
};
foreach($result as $row)
{
$to = $form_state['values']['template'] == "supervisor" ? $row->supervisor_email : $row->mail;
$params = array(
'!champname' => $row->fname . " " . $row->lname,
'!champfirstname' => $row->fname,
'!champlastname' => $row->lname,
'!supervisor' => $row->supervisor_name,
'subject' => $form_state['values']['subject'],
'body' => is_array($form_state['values']['body']) ? check_markup($form_state['values']['body']['value'], $form_state['values']['body']['format']) : $form_state['values']['body'],
'attachment' => $attachment,
);
drupal_mail('champs', 'custom', $to, language_default(), $params,$form_state['values']['from']);
}
drupal_set_message("Email sent");
$form_state['redirect'] = 'admin/config/system/champs';
}
关于我在此过程中缺少什么或 MIME 或邮件系统是否需要额外配置的任何想法。谢谢,如果有人看到任何异常情况,请告诉我。
【问题讨论】:
-
您检查文件是否正确上传且 $form_state['values']['filemime'] 是否正确?
-
它确实上传正确,当我执行 file_exists 时,它显示为 true。有更好的“drupal 方式”吗?我直接使用在文件系统类别的管理区域中设置的公共文件。
-
我正在使用从 drupal 上传返回的 mime 类型。
-
D8 有什么更新吗?