За последние 24 часа нас посетили 15084 программиста и 1753 робота. Сейчас ищут 1490 программистов ...

[size=18]Почта вложением[/size]

Тема в разделе "Работа с почтой", создана пользователем moroz, 29 окт 2011.

  1. moroz

    moroz Активный пользователь

    С нами с:
    13 дек 2010
    Сообщения:
    33
    Симпатии:
    0
    Мне надо выбрать из обзора файл , прикрепить его и отправить.Подключила этот пример по отправке почты (с прикреплением файлов ) себе на страницу
    ,вот что выскочило:
    Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\home\bb\class.phpmailer.php on line 1091

    Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\home\bb\class.phpmailer.php on line 1095

    Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\home\portal\www\template\forall\class.phpmailer.php on line 1091

    Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\home\portal\www\template\forall\class.phpmailer.php on line 1095
    Спасибо! Вfше письмо отправлено.
    А на самом деле письмо так и не пришло.Посмотрела,оно находится в заглушке z:\tmp\!sendmail
    и оно очень длинное!Файлы прикрепились.Но дальше-Абракодабра.

    Помогите,пожалуйста,кто знает,как исправить ошибку эту

    PHP:
    1.  
    2. <?php
    3. function show_form()
    4. {
    5. ?>
    6. <form action="" method=post enctype="multipart/form-data">
    7. <div align="center">
    8.               <br />Имя*<br />
    9.               <input type="text" name="name" size="40">
    10.               <br />Контактный телефон<br />
    11.               <input type="text" name="tel" size="40">
    12.               <br />Контактный email*<br />
    13.               <input type="text" name="email" size="40">
    14.               <br />Teма<br />
    15.               <input type="text" name="title" size="40">
    16.               <br />Сообщение*<br />
    17.               <textarea rows="10" name="mess" cols="30"></textarea>
    18.               <br />Файл<br />
    19.               <input name="attachfile" type="file" size="28">
    20.               <br />Изображение<br />
    21.               <input name="attachimage" type="file" size="28">
    22.               <br /><br /><input type="submit" value="Отправить" name="submit">
    23. </div>
    24. </form>
    25. * Помечены поля, которые необходимо заполнить
    26. <?
    27. }
    28.  
    29. function complete_mail() {
    30.         // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
    31.         $_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
    32.         $_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
    33.         $_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
    34.         $_POST['tel'] =  substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);
    35.         $_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
    36.         // если не заполнено поле "Имя" - показываем ошибку 0
    37.         if (empty($_POST['name']))
    38.              output_err(0);
    39.         // если неправильно заполнено поле email - показываем ошибку 1
    40.         if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
    41.              output_err(1);
    42.         // если не заполнено поле "Сообщение" - показываем ошибку 2
    43.         if(empty($_POST['mess']))
    44.              output_err(2);
    45.         // обратите внимание, теперь мы можем писать красивые письма, с помощью html тегов ;-)
    46.         $mess = '
    47. <b>Имя отправителя:</b>'.$_POST['name'].'<br />
    48. <b>Контактный телефон:</b>'.$_POST['tel'].'<br />
    49. <b>Контактный email:</b>'.$_POST['email'].'<br />
    50. '.$_POST['mess'];
    51.  
    52.         // подключаем файл класса для отправки почты
    53.         require 'class.phpmailer.php';
    54.  
    55.         $mail = new PHPMailer();
    56.         $mail->From = [email='test@test.ru]'test@test.ru[/email]';      // от кого
    57.        $mail->FromName = 'www.php-mail.ru';   // от кого
    58.        $mail->AddAddress([email='to@yandex.ru]'to@yandex.ru[/email]', 'Имя'); // кому - адрес, Имя
    59.         $mail->IsHTML(true);        // выставляем формат письма HTML
    60.         $mail->Subject = $_POST['title'];  // тема письма
    61.  
    62.         // если был файл, то прикрепляем его к письму
    63.         if(isset($_FILES['attachfile'])) {
    64.                  if($_FILES['attachfile']['error'] == 0){
    65.                     $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);
    66.                  }
    67.         }
    68.         // если было изображение, то прикрепляем его в виде картинки к телу письма.
    69.         if(isset($_FILES['attachimage'])) {
    70.                  if($_FILES['attachimage']['error'] == 0){
    71.                     if (!$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image.gif', 'base64', $_FILES['attachimage']['type']))
    72.                          die ($mail->ErrorInfo);
    73.                     $mess .= 'А вот и наша картинка:<br /><img src="cid:my-attach" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) ';
    74.                  }
    75.         }
    76.         $mail->Body = $mess;
    77.  
    78.         // отправляем наше письмо
    79.         if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
    80.         echo 'Спасибо! Ваше письмо отправлено.';
    81. }
    82.  
    83. function output_err($num)
    84. {
    85.     $err[0] = 'ОШИБКА! Не введено имя.';
    86.     $err[1] = 'ОШИБКА! Неверно введен e-mail.';
    87.     $err[2] = 'ОШИБКА! Не введено сообщение.';
    88.     echo '<p>'.$err[$num].'</p>';
    89.     show_form();
    90.     exit();
    91. }
    92.  
    93. if (!empty($_POST['submit'])) complete_mail();
    94. else show_form();
    95. ?>
    96.  
    97.  
    [/php]
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Это из-за самого класса class.phpmailer.php - можно покопаться в нём и переделать, либо просто отключить вывод ошибок уровня E_DEPRECATED.
    Чтобы письма реально отправлялись с локалхоста- нужно установить и настроить соответствующий софт (например, программу sendmail). Также class.phpmailer.php , вроде умеет почту отправлять и сам через сокеты, но тогда нужно ему указывать логины-пароли.
     
  3. moroz

    moroz Активный пользователь

    С нами с:
    13 дек 2010
    Сообщения:
    33
    Симпатии:
    0
    На локальном денвер установлен.
    Не знаю как отключить вывод ошибок уровня E_DEPRECATED.
     
  4. moroz

    moroz Активный пользователь

    С нами с:
    13 дек 2010
    Сообщения:
    33
    Симпатии:
    0
    Отключила вывод ошибок уровня E_DEPRECATED в class.phphmailer.php

    Может кто посоветует мне ссылки на скрипты с прикрепленным к письму файлом (не картинкой).Только мне не нужны варианты,когда прикрепленный файл ложится в тело письма.Надо,чтобы он крепился к письму только именем.
    Спасибо заранее.
    И еще такой вопрос,письма отправленные денвером,ложатся в заглушку.И,чтобы оно дальше пошло,что надо сделать?Направить на порт 25.Где прописать?

    Спасибо.
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
     
  6. moroz

    moroz Активный пользователь

    С нами с:
    13 дек 2010
    Сообщения:
    33
    Симпатии:
    0
    sobachnik
    Подскажите поконкретнее как мне настроить sendmail
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО