J
J
JuliaNiki2021-06-28 15:39:53
PHP
JuliaNiki, 2021-06-28 15:39:53

How to send a file to the entered mail in the form?

There is such php - it successfully sends data to my mail. And how can I register here so that a file is sent to the mail entered by the client?

/***************************************************************************
 *                              Настройки                                  *
 ***************************************************************************/

const NOTIFICATIONS_EMAIL = "[email protected]";
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);

Answer the question

In order to leave comments, you need to log in

1 answer(s)
N
Nadim Zakirov, 2021-06-29
@zkrvndm

You can use the SendMailSmtpClass library . It makes it very easy to send files.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question