За последние 24 часа нас посетили 37874 программиста и 7851 робот. Сейчас ищут 1865 программистов ...

Множественная отправка

Тема в разделе "Работа с почтой", создана пользователем irlex, 6 ноя 2012.

  1. irlex

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

    С нами с:
    6 ноя 2012
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток!
    Ситуация следующая:
    Есть форма отправки сообщений (она же форма онлайн-заказа), выглядит она так
    Код (Text):
    1. <script type="text/javascript">
    2.  var RecaptchaOptions = {
    3.     theme : 'blackglass',
    4.   lang : 'ru',
    5.  };
    6.  </script>
    7. <form name="order" method="post" action="/sendrumail.php"><p>
    8. <table border="0" width="100%">
    9. <tr><td width="35%"><br>Фамилия, имя, отчество <font color="red">*</font>:</td><td><br><input type="text" name="fio" size="30" style="width:95%;" maxlength="70"> </td></tr>
    10. <tr><td><br>Должность <font color="red">*</font>:</td><td><br><input type="text" name="pos" size="30" style="width:95%;" maxlength="70"> </td></tr>
    11. <tr><td><br>Организация <font color="red">*</font>:</td><td><br><input type="text" name="org" size="30" style="width:95%;" maxlength="70"> </td></tr>
    12. <tr><td><br>E-mail отправителя <font color="red">*</font>:</td><td><br><input type="text" name="mail" size="30" style="width:95%;" maxlength="70"> </td></tr>
    13. <tr><td><br>Контактный телефон <font color="red">*</font>:</td><td><br><input type="text" name="tel" size="30" style="width:95%;" maxlength="70"> </td></tr>
    14. <tr><td><br>Интересующие виды услуг:</td><td><br><select size="1" name="serv"><option>opt1</option><option>opt2</option><option>opt3</option><option>opt4</option></select></td></tr>
    15. <tr><td><br>Дополнительная информация:</td><td><br><textarea rows="7" name="inf" cols="30" style="width:95%;"></textarea> </td></tr>
    16.   <tr><td></td><td align="center"><br><script type="text/javascript"
    17.      src="http://www.google.com/recaptcha/api/challenge?k=public_key">
    18.   </script>
    19.   <noscript>
    20.      <iframe src="http://www.google.com/recaptcha/api/noscript?k=public_key"
    21.          height="100" width="175" frameborder="0"></iframe><br>
    22.      <textarea name="recaptcha_challenge_field" rows="3" cols="40">
    23.      </textarea>
    24.      <input type="hidden" name="recaptcha_response_field"
    25.          value="manual_challenge">
    26.   </noscript><br></td></tr>
    27.   <tr><td></td><td colspan="2" align="center"><br><input type="submit" value="    Отправить    ">
    28.   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="Отмена"></td></tr>
    29. </table>
    30. </p>
    31. </form>
    и имеется обработчик такого вида:
    Код (Text):
    1. <html>
    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    4. </head>
    5. <body>
    6. <?php
    7.  
    8. /* Проверка на заполнение полей */
    9. if (isset($_POST['fio']) && isset($_POST['pos']) && isset($_POST['org']) && isset($_POST['mail']) && isset($_POST['serv']) && isset($_POST['tel']))
    10.  
    11. /* Проверка корректности введенного адреса */
    12. if (!eregi("^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$",$value)){
    13.      echo "Ошибочный email";
    14. }
    15.  
    16. {
    17.  
    18. /* Указываем имеющиеся в форме поля */
    19. $fio = $_POST['fio'];
    20. $pos = $_POST['pos'];
    21. $org = $_POST['org'];
    22. $mail = $_POST['mail'];
    23. $tel = $_POST['tel'];
    24. $serv = $_POST['serv'];
    25. $inf = $_POST['inf'];
    26.  
    27. /* Превращаем кодировку в читабельную символику */
    28. $fio = htmlspecialchars(trim($fio));
    29. $pos = htmlspecialchars(trim($pos));
    30. $org = htmlspecialchars(trim($org));
    31. $mail = htmlspecialchars(trim($mail));
    32. $tel = htmlspecialchars(trim($tel));
    33. $serv = htmlspecialchars(trim($serv));
    34. $inf = htmlspecialchars(trim($inf));
    35.  
    36. /* Формируем сообщение для ящика */
    37. $to1 = 'opt1@company.com'; // ящик, на который будут приходить письма 1
    38. $to2 = 'opt2@company.com'; // ящик, на который будут приходить письма 2
    39. $to3 = 'opt3@company.com'; // ящик, на который будут приходить письма 3
    40. $to4 = 'opt4@company.com'; // ящик, на который будут приходить письма 4
    41. $sub = "Онлайн заказ"; // заголовок письма
    42. $messsage = "Сайтом company.com был принят заказ. Информация по заказу:\n Ф.И.О.: $fio \n Должность: $pos \n Организация: $org \n Контактный E-mail: $mail \n Контактный телефон: $tel \n Дополнительная информация: $inf \n Интересующий вид услуг: $serv \n\n\n ";
    43.  
    44. /* Команда отправки для ящика 1 */
    45. $sendmail = mail ($to1,$sub,$messsage,"Content-type:text/plain; charset = utf-8\r\nFrom:noreply@company.com"); // устанавливаем адрес отправителя сообщения и кодировку
    46. if ($sendmail == 'true'){
    47.     echo '<script type="text/javascript">alert(\'Ваш заказ успешно отправлен!\');</script>'; // сообщение об удачной отправке заказа
    48. }
    49. else {
    50.     echo '<script type="text/javascript">alert(\'В процессе отправки заказа возникла ошибка.\n Повторите попытку позднее.\');d</script>'; // сообщение о неудачной отправке заказа
    51. }
    52. }
    53. echo '<script type="text/javascript">document.location.href="http://company.com/";</script>'; // страница, на которую возвращает после оформления заказа
    54.  
    55. /* Команда отправки для ящика 2 */
    56. $sendmail = mail ($to2,$sub,$messsage,"Content-type:text/plain; charset = utf-8\r\nFrom:noreply@company.com"); // устанавливаем адрес отправителя сообщения и кодировку
    57. if ($sendmail == 'true'){
    58.     echo '<script type="text/javascript">alert(\'Ваш заказ успешно отправлен!\');</script>'; // сообщение об удачной отправке заказа
    59. }
    60. else {
    61.     echo '<script type="text/javascript">alert(\'В процессе отправки заказа возникла ошибка.\n Повторите попытку позднее.\');d</script>'; // сообщение о неудачной отправке заказа
    62. }
    63. echo '<script type="text/javascript">document.location.href="http://company.com/";</script>'; // страница, на которую возвращает после оформления заказа
    64.  
    65. /* Команда отправки для ящика 3 */
    66. $sendmail = mail ($to3,$sub,$messsage,"Content-type:text/plain; charset = utf-8\r\nFrom:noreply@company.com"); // устанавливаем адрес отправителя сообщения и кодировку
    67. if ($sendmail == 'true'){
    68.     echo '<script type="text/javascript">alert(\'Ваш заказ успешно отправлен!\');</script>'; // сообщение об удачной отправке заказа
    69. }
    70. else {
    71.     echo '<script type="text/javascript">alert(\'В процессе отправки заказа возникла ошибка.\n Повторите попытку позднее.\');d</script>'; // сообщение о неудачной отправке заказа
    72. }
    73. echo '<script type="text/javascript">document.location.href="http://company.com/";</script>'; // страница, на которую возвращает после оформления заказа
    74.  
    75. /* Команда отправки для ящика 4 */
    76. $sendmail = mail ($to4,$sub,$messsage,"Content-type:text/plain; charset = utf-8\r\nFrom:noreply@company.com"); // устанавливаем адрес отправителя сообщения и кодировку
    77. if ($sendmail == 'true'){
    78.     echo '<script type="text/javascript">alert(\'Ваш заказ успешно отправлен!\');</script>'; // сообщение об удачной отправке заказа
    79. }
    80. else {
    81.     echo '<script type="text/javascript">alert(\'В процессе отправки заказа возникла ошибка.\n Повторите попытку позднее.\');d</script>'; // сообщение о неудачной отправке заказа
    82. }
    83. echo '<script type="text/javascript">document.location.href="http://company.com/";</script>'; // страница, на которую возвращает после оформления заказа
    84. //die();
    85.  
    86. ?>
    87. </body>
    88. </html>
    и имеются несколько вопросов:
    1 - форма отправляет сообщения в обход рекапчи;
    2 - как сделать, чтоб при выборе из option, например, opt1 мыло отправлялось только на opt1@company.com... и, соотвественно, opt2 на opt2 и т.д.
    Заранее благодарен за помощь.
    P.S.: сам не силен в php, шеф заставил старым сайтом заняться..
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    Шефу не жалко заплатить может? Проблему легко решить, заплатив специалисту.
     
  3. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    может я смогу помочь 150 зелени