|
|
|
| В формах, которые были указаны выше, были приведены формы для отправки писем с вложенным файлом с сайта. Там было указано уведомление, в том случае, если письмо не отправлено, но небыло указано уведомление в случае, если оно отправлено. А как же быть с этим, остается ведь пустая страница? Помогите пожалуйста с этим. И еще вопрос, как сделать так, чтобы картинка для почты выбиралась не с компа, а из существующих в конкретной папке сайта имиджей? Спасибо! | |
|
|
|
|
|
|
|
для: extra
(23.04.2006 в 00:26)
| | Вероятно имеется ввиду вот этот скрипт http://www.softtime.ru/scripts/mailattach.php.
1) Вы можете после успешного отправления письма осуществить редирект на другу страницу при помощи конструкции
<?php
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=адрес_страницы.php'>
</HEAD></HTML>";
?>
|
2) Да, можно отправить изображение с сайта, для этого при вызове функции send_mail()
<?php
send_mail($to, $thm, $html, $path);
?>
|
В качестве четвёртого параметра $path следует указать путь к этому файлу. | |
|
|
|
|
|
|
|
для: cheops
(23.04.2006 в 00:48)
| | Непонимаю, пожалуйста дайте по второму ответу полный пример страницы. | |
|
|
|
|
|
|
|
для: extra
(23.04.2006 в 01:03)
| | А какой у вас путь к файлу? | |
|
|
|
|
|
|
|
для: cheops
(23.04.2006 в 11:22)
| | мой сайт/send/index.php | |
|
|
|
|
|
|
|
для: extra
(23.04.2006 в 21:31)
| | Обработчик может в этом случае выглядеть примерно так
<?php
if(empty($_POST['mail_to'])) exit("Введите адрес получателя");
// проверяем правильности заполнения с помощью регулярного выражения
if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST['mail_to'])) exit("Введите адрес в виде somebody@server.com");
$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to']));
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject']));
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg']));
$thm = $_POST['mail_subject'];
$msg = $_POST['mail_msg'];
$mail_to = $_POST['mail_to'];
// Отправляем почтовое сообщение
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, "/send/index.php");
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'koi8-r'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(23.04.2006 в 00:48)
| | Непонимаю, куда это вставлять, и то и другое, куда быв я не вставлял, никакого результата. | |
|
|
|