Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по отправке почты с сайта
 
 автор: extra   (23.04.2006 в 00:26)   письмо автору
 
 

В формах, которые были указаны выше, были приведены формы для отправки писем с вложенным файлом с сайта. Там было указано уведомление, в том случае, если письмо не отправлено, но небыло указано уведомление в случае, если оно отправлено. А как же быть с этим, остается ведь пустая страница? Помогите пожалуйста с этим. И еще вопрос, как сделать так, чтобы картинка для почты выбиралась не с компа, а из существующих в конкретной папке сайта имиджей? Спасибо!

   
 
 автор: cheops   (23.04.2006 в 00:48)   письмо автору
 
   для: 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 следует указать путь к этому файлу.

   
 
 автор: extra   (23.04.2006 в 01:03)   письмо автору
 
   для: cheops   (23.04.2006 в 00:48)
 

Непонимаю, пожалуйста дайте по второму ответу полный пример страницы.

   
 
 автор: cheops   (23.04.2006 в 11:22)   письмо автору
 
   для: extra   (23.04.2006 в 01:03)
 

А какой у вас путь к файлу?

   
 
 автор: extra   (23.04.2006 в 21:31)   письмо автору
 
   для: cheops   (23.04.2006 в 11:22)
 

мой сайт/send/index.php

   
 
 автор: cheops   (24.04.2006 в 00:13)   письмо автору
 
   для: 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($fpfilesize($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(); 
    } 
  } 
?>

   
 
 автор: extra   (23.04.2006 в 01:36)   письмо автору
 
   для: cheops   (23.04.2006 в 00:48)
 

Непонимаю, куда это вставлять, и то и другое, куда быв я не вставлял, никакого результата.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования