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

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


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

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

Написал небольшой мод для отправки сообщений на почту, он использует настройки 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); //Отправляем письмо

?>

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

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

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...