Задать вопрос
@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>');
		}
	}
}

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

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

Похожие вопросы