Отправить e-mail с вложением (аттачем)

Пример кода, который создаёт форму для загрузки файла с последующей его отправкой на ящик to@example.com:

/**
 * Form builder
 */
function mymodule_send_form($form, $form_state) {
  $form['attachment'] = array(
    '#type' => 'file',
    '#title' => 'Attachment',
  );  
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Send',
  );
  return $form;
}
 
/**
 * Validate callback
 */
function mymodule_send_form_validate($form, &$form_state) {
  if ($file = file_save_upload('attachment', array(), 'temporary://')) {
    $form_state['values']['attachment'] = $file;
  }
  else {
    form_set_error('file', 'File not uploaded.');
  }
}
 
/**
 * Submit callback
 */
function mymodule_send_form_submit($form, &$form_state) {
  drupal_mail(
    'mymodule',
    'send_attachment',
    'to@example.com',
    language_default(),
    array('attachments' => array($form_state['values']['attachment']))
  );
}
 
/**
 * Implements hook_mail().
 */
function mymodule_mail($key, &$message, $params) {
  if ($key == 'send_attachment') {
    $message['subject'] = 'Mail with attachment';
    $message['body'][] = 'Body...';
  }
}

Для работы требуется модуль Mime Mail версии больше 7.x-1.0-alpha1.

Написанное актуально для
Drupal 7
Теги:
работа с почтой, работа с файлами, работа с формами
Добавлено: 30 Июля 2018 07:35:14 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...