Answer the question
In order to leave comments, you need to log in
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
You can use the SendMailSmtpClass library . It makes it very easy to send files.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question