Перейти к публикации

Прикрепление файла при отправке письма на почту


Рекомендованные сообщения

Привет, друзья.

Написал небольшой мод для отправки сообщений на почту, он использует настройки DLE, отвечающие за отправку сообщений на почту.

Стала задача прикреплять изображение. Способен ли mail.class.php выполнить это действие?

Ссылка на сообщение
Поделиться на других сайтах

Способен ли mail.class.php выполнить это действие?

нет

А если дописать соответствующие для прикрепленного файла заголовки в классе?

Ссылка на сообщение
Поделиться на других сайтах

А если дописать соответствующие для прикрепленного файла заголовки в классе?

Дописать можно все что угодно.

Ссылка на сообщение
Поделиться на других сайтах

Владимир, подскажите, пожалуйста, как правильно добавить заголовки в письмо, не влезая в файл класса и чтобы не переопределить те что в нем?

Из своего файла правильна ли будет запись:


$mail->mail_headers .= "Мои заголовки"

Изменено пользователем Critical Error
Ссылка на сообщение
Поделиться на других сайтах

Нашел пример прикрепления фала. Код следующий:


<?php

  $filename = "form.txt"; //Имя файла для прикрепления

  $to = "abc@mail.ru"; //Кому

  $from = "def@gmail.com"; //От кого

  $subject = "Test"; //Тема

  $message = "Текстовое сообщение"; //Текст письма

  $boundary = "---"; //Разделитель

  /* Заголовки */

  $headers = "From: $from\nReply-To: $from\n";

  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";

  $body = "--$boundary\n";

  /* Присоединяем текстовое сообщение */

  $body .= "Content-type: text/html; charset='utf-8'\n";

  $body .= "Content-Transfer-Encoding: quoted-printablenn";

  $body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";

  $body .= $message."\n";

  $body .= "--$boundary\n";

  $file = fopen($filename, "r"); //Открываем файл

  $text = fread($file, filesize($filename)); //Считываем весь файл

  fclose($file); //Закрываем файл

  /* Добавляем тип содержимого, кодируем текст файла и добавляем в тело письма */

  $body .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode($filename)."?=\n";

  $body .= "Content-Transfer-Encoding: base64\n";

  $body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";

  $body .= chunk_split(base64_encode($text))."\n";

  $body .= "--".$boundary ."--\n";

  mail($to, $subject, $body, $headers); //Отправляем письмо

?>

Путь к файлу, находящемуся на лок. машине, приходит на сервер.

Как из выше написанного кода выделить нужное не совсем понимаю. Если не сложно, подскажите, пожалуйста.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...