Задать вопрос
@JuliaNiki

Как отправить файл на введенную почту в форме?

Есть такой php - он успешно отправляет данные на мою почту. А как здесь можно прописать чтобы на почту введенную клиентом отправлялся файл?
/***************************************************************************
 *                              Настройки                                  *
 ***************************************************************************/

const NOTIFICATIONS_EMAIL = "mail@mail.ru";
const TELEGRAM_TOKEN = "";
const TELEGRAM_CHAT_ID = "";


/***************************************************************************
 *                                Логика                                   *
 ***************************************************************************/

// Получаем данные из формы
$input = getInput();

// Если просто переход на файл обработчика, без заполнения формы
if (empty($input["text"])) { 
exit(0); 
}

// Если превышен суммарный максимальный размер всех полей формы (вместе с файлами), показываем страницу с ошибкой
// и просим заполнить форму еще раз
if (empty($input["text"]) && empty($input["files"]) && (int)$_SERVER['CONTENT_LENGTH'] > 512 * 1024) {
    showPostExceededError();
}

// Разбираем полученные файлы
$files = getFiles($input);

// Если есть файлы, превышающие максимальный разрешенный размер - показываем страницу с ошибкой
// и просим заполнить форму еще раз
$bigFiles = getBigFiles($files);
if (count($bigFiles) != 0) {
    showBigFilesError($input, $bigFiles);
}

// Если есть ошибки (серверные) при загрузке файлов, пишем об этом в логи
$errorFiles = getErrorFiles($files);
if (count($errorFiles) != 0) {
    foreach ($errorFiles as $file) {
        error_log("Fail to upload file {$file["name"]}. Error code: {$file["error"]}", 0);
    }
}

// Получаем список успешно загруженных файлов
$goodFiles = getGoodFiles($files);

// Создаем новый ID для заявки. Это поможет идентифицировать апселлы
$leadId = time();

// Если указан email для уведомлений - отправляем письмо
if (defined("NOTIFICATIONS_EMAIL") && NOTIFICATIONS_EMAIL != "") {
    $emailSent = sendEmail($input, $leadId, $errorFiles, $goodFiles);
}

// Если указаны данные для Telegram бота - шлем лид в Telegram
if (defined("TELEGRAM_TOKEN") && TELEGRAM_TOKEN != "" && defined("TELEGRAM_CHAT_ID") && TELEGRAM_CHAT_ID != "") {
    $telegramSent = sendTelegram($input, $leadId, $errorFiles, $goodFiles);
}

// Если заявка не отправилась ни на Email, ни в Telegram - показываем посетителю ошибку отправки формы
if (!$emailSent && !$telegramSent) {
    showFormError();
}

// Если указан URL редиректа - делаем редирект
if ($input["text"]["redirect"]) {
    redirect($input, $leadId);
}

// Если редирект не настроен - показываем стандартную страницу благодарности
showDefaultThankyouPage($input);
  • Вопрос задан
  • 166 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Вы можете использовать библиотеку SendMailSmtpClass. При помощи него очень легко отправлять файлы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽