- Автор темы
- #1
Здравствуйте. Несколько лет назад один человек мне помог с формой отправки файлов на почту. Выглядела она довольно просто:
И всё это работало до пары, до времени, пока не обновился php. Теперь в новых php использовать $eol нельзя (и еще много чего нельзя), ибо ничего не отправиться. Так как я прикреплении файлов в последнее время особо не нуждался, я просто нашел где-то простую форму, которая работала на последних php.
Теперь у меня вновь появилась нужда в отправке файлов. Поискав в сети простых форм, я был удивлён, так как одна форма была "лучше" другой. Какие-то костыли, какие-то лишние php файлы, какой-то php mail'er. зачем всё? - непонятно. Подскажите, что к моей простой форме нужно дописать, чтобы работала функция отправки файлов на почту? Пожалуйста не нужно предлагать phpmailer и им подобные. Это всё костыли
PHP:
$subject = "Заголовок";
$mailto = "exam@gmail.com"; // кому отправляем
$message = "Текст сообщения";
$separator = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$separator}x";
$eol = PHP_EOL;
$filesize = '';
// Заголовки
$headers = 'From: от кого example@m.ru' . $eol;
$headers .= 'MIME-Version: 1.0' . $eol;
$headers .= 'Content-Type: multipart/mixed; boundary=' . $separator . $eol . $eol;
$headers .= 'Content-Transfer-Encoding: 7bit' . $eol;
$headers .= 'This is a MIME encoded message.' . $eol . $eol;
// Сообщение
$headers .= '--' . $separator . $eol;
$headers .= 'Content-Type: text/plain; charset=utf-8' . $eol;
$headers .= 'Content-Transfer-Encoding: 8bit' . $eol . $eol;
$headers .= $message . $eol . $eol;
// Прикрепляем файлы
$files = $_FILES['fileFF'];
for($i = 0; $i < count($files['name']); $i++) {
if(is_uploaded_file($files['tmp_name'][$i])) {
$file = $files['tmp_name'][$i];
$filename = $files['name'][$i];
$filetype = $files['type'][$i];
$filesize += $files['size'][$i];
$content = chunk_split(base64_encode(file_get_contents($file)));
$headers .= '--' . $separator . $eol;
$headers .= 'Content-Type: '.$filetype.'; name=' . $filename . $eol;
$headers .= 'Content-Transfer-Encoding: base64' . $eol;
$headers .= 'Content-Disposition: attachment; filename=' . $filename . $eol . $eol;
$headers .= $content . $eol . $eol;
$headers .= '--' . $mime_boundary . $eol;
}
}
// Отправка сообщения
if (mail($mailto, $subject, '', $headers)){
echo 'ok';
} else {
echo 'error';
}
PHP:
$to = 'komu';
$subject = 'заголовок';
$message = "text";
$headers = 'From: exam@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subject, $message, $headers)){
echo "ok";
} else {
echo "error";
}