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

Как прикрепить файл к письму на PHP?

Подскажите, как в таком коде сделать прикрепление файла к письму?

<input type="file" name="file">

<?
if (isset($_POST['act']) && $_POST['message']=='') {
	if ($_POST['act']=='copy') {	
		$email=htmlspecialchars(strip_tags(strval($_POST['email'])));
		$name=htmlspecialchars(strip_tags(strval($_POST['name'])));

		//отправляем письмо
		$data = array();
		$data['capcha'] = 'VERY_SECRET_CODE_FROM_INSIDE';
		$data['robot'] = 1;
		$data['from_url'] = 'http://.../';
		$data['store'] = 1;
		$data['fullname'] = mb_convert_encoding('Не указано', 'windows-1251', 'UTF-8');
		$data['email'] = mb_convert_encoding('mail@mail.ru', 'windows-1251', 'UTF-8');
		$data['subject'] = mb_convert_encoding('Проверка', 'windows-1251', 'UTF-8');
		$data['content'] = mb_convert_encoding("Проверка\n\nПочта: $email\nИмя: $url\n", 'windows-1251', 'UTF-8');
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
		curl_setopt($ch, CURLOPT_URL, 'http://..../');
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		$res = curl_exec($ch);
		if (curl_errno($ch)) {
			trigger_error(curl_error($ch));
		}
		curl_close($ch);
		if (preg_match('~^OK~', $res)) {
			print_r('<p class="result">Спасибо!</p>');
		} 
		else {
			print_r('<!--'.$res.'--><p class="result">Ошибка!</p>');
		}
	}
}

?>
  • Вопрос задан
  • 952 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
miraage
@miraage
Старый прогер
Ответ написан
Комментировать
SowingSadness
@SowingSadness
web-разработчик
Используйте PHPMailer что бы было всё просто.
Ответ написан
Комментировать
Похоже, что в этом коде данные для отправки письма отправляются на какой-то сервер POST запросом. Тогда туда надо просто добавить файл гуглить "curl post file multipart form data"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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