За последние 24 часа нас посетили 22348 программистов и 1166 роботов. Сейчас ищут 754 программиста ...

Отправка почты с локалхост

Тема в разделе "PHP для новичков", создана пользователем kilogram, 13 июн 2012.

  1. kilogram

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

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    По данной инструкции http://www.simplecoding.org/php-mail-pod-windows.html, немного с изменениями неважными написал код.

    Код (Text):
    1.  
    2.  
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    5. <html xmlns="http://www.w3.org/1999/xhtml">
    6. <head>
    7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    8. <title>Simple Mail</title>
    9. </head>
    10. <body>
    11. <?php
    12. $addr = 'usa-1200@mail.ru';
    13. $theme = 'Для тебя';
    14. $text = 'Приве малыш! Как дела?';
    15. if (isset($addr) && isset($theme) && isset($text)
    16.         && $addr != "" && $theme != "" && $text != "") {
    17.     if (mail($addr, $theme, $text, "From: vova_33@mail.ru")) {
    18.         echo "<h3>Сообщение отправлено</h3>";
    19.     }
    20.     else {
    21.         echo "<h3>При отправке сообщения возникла ошибка</h3>";
    22.     }
    23. }
    24. ?>
    25. <form action="index.php.php" method="post">
    26. <p>
    27.     <label for="addr">eMail:</label>
    28.     <input type="text" name="addr" id="addr" size="30" />
    29. </p>
    30. <p>
    31.     <label for="theme">Тема письма:</label>
    32.     <input type="text" name="theme" id="theme" size="30" />
    33. </p>
    34. <p>
    35.     <label for="text">Текст письма:</label>
    36.     <textarea rows="10" cols="20" name="text" id="text"></textarea>
    37. </p>
    38. <p>
    39.     <input type="submit" value="Отправить" />
    40. </p>
    41. </form>
    42. </body>
    43. </html>


    В поле email ввожу usa-1200@mail.ru
    В поле тема пишу "Привет" и текст Привет Петя! в поле текст, нажимаю отправить. Выдает такое сообщение.

    Что делать?
    sendmail.exe лежит у меня по такому пути: C:\php\sendmail\sendmail.exeВ php.ini

    Код (Text):
    1.  
    2. Указал в php.ini так:
    3. smtp_port = 2525
    4. SMTP = sendmail_from =
    5. sendmail_path = "C:\php\sendmail\sendmail.exe -t"
    [​IMG]

    Файл sendmail.exe действительно у меня лежит по такому пути как я указал выше. После отправки, выдает такое сообщение:

    Код (PHP):
    1. Not FoundThe requested URL /mailer.php was not found on this server. 
    Помогите, что делать?
     
  2. kilogram

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

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Код (Text):
    1. sendmail_from =
    2. SMTP =
    3. smtp_port = 25
    4. sendmail_path = "C:\php\sendmail\sendmail.exe -t"
    Вот так настроил и такой код
    Код (Text):
    1.  
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    4. <html xmlns="http://www.w3.org/1999/xhtml">
    5. <head>
    6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    7. <title>Simple Mail</title>
    8. </head>
    9. <body>
    10. <?php
    11. $addr = 'usa-1200@mail.ru';
    12. $theme = 'Для тебя';
    13. $text = 'Приве малыш! Как дела?';
    14. if (isset($addr) && isset($theme) && isset($text)
    15.         && $addr != "" && $theme != "" && $text != "") {
    16.     if (mail($addr, $theme, $text, "From: vova_33@mail.ru")) {
    17.         echo "<h3>Сообщение отправлено</h3>";
    18.     }
    19.     else {
    20.         echo "<h3>При отправке сообщения возникла ошибка</h3>";
    21.     }
    22. }
    23. ?>
    24. <form action="index.php" method="post">
    25. <p>
    26.     <label for="addr">eMail:</label>
    27.     <input type="text" name="addr" id="addr" size="30" />
    28. </p>
    29. <p>
    30.     <label for="theme">Тема письма:</label>
    31.     <input type="text" name="theme" id="theme" size="30" />
    32. </p>
    33. <p>
    34.     <label for="text">Текст письма:</label>
    35.     <textarea rows="10" cols="20" name="text" id="text"></textarea>
    36. </p>
    37. <p>
    38.     <input type="submit" value="Отправить" />
    39. </p>
    40. </form>
    41. </body>
    42. </html>
    Не работает. Что делать?
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Хз. Зачем вобще отправлять почту с локалхоста? Почему не тестировать этот функционал на хостинге.
     
  4. freethetan

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

    С нами с:
    13 июн 2012
    Сообщения:
    10
    Симпатии:
    0
    Проверьте ещё раз имя Form action="inde.php.php"
     
  5. kilogram

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

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Все, исправил ошибку. Оказывается в 3-ем параметре функции mail -> From: нужно было указать такое же название почты, как и в кофигурационном файле force_sender=usa-1400@mail.ru

    Немного подкоректировал код, чтобы приходили письма в русской кодирове тема и само письмо.

    Код (Text):
    1.  
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    4. <html xmlns="http://www.w3.org/1999/xhtml">
    5. <head>
    6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    7. <title>Simple Mail</title>
    8. </head>
    9. <body>
    10. <?php
    11. @$addr = $_POST['addr'];
    12. @$theme = $_POST['theme'];
    13. @$text = $_POST['text'];
    14. if (isset($addr) && isset($theme) && isset($text)
    15.         && $addr != "" && $theme != "" && $text != "") {
    16.     if (mail($addr, $theme, $text, "From: usa-1000@mail.ru \r\nContent-type: text/html; charset=UTF-8 \r\n")) {
    17.         echo "<h3>Сообщение отправлено</h3>";
    18.     }
    19.     else {
    20.         echo "<h3>При отправке сообщения возникла ошибка</h3>";
    21.     }
    22. }
    23. ?>
    24. <form action="index.php" method="post">
    25. <p>
    26.     <label for="addr">eMail:</label>
    27.     <input type="text" name="addr" id="addr" size="30" />
    28. </p>
    29. <p>
    30.     <label for="theme">Тема письма:</label>
    31.     <input type="text" name="theme" id="theme" size="30" />
    32. </p>
    33. <p>
    34.     <label for="text">Текст письма:</label>
    35.     <textarea rows="10" cols="20" name="text" id="text"></textarea>
    36. </p>
    37. <p>
    38.     <input type="submit" value="Отправить" />
    39. </p>
    40. </form>
    41. </body>
    42. </html>
    в маил.ру,яндекс.ру пришло в папку входящие, в ukr.net пришло в папку СПАМ, в i.ua тоже в СПАМ,нужно что-то решать.

    Как сделать чтобы не приходило в СПАМ?
     
  6. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Отметка "спам" это тайна покрытая мраком )))
    Твой локальный sendmail шлет почту через smtp-сервер mail.ru ? Если ты в полях From и Reply-To указываешь не тот домен, что реально используется, то всё закономерно — это чёртов спам.

    Добавлено спустя 1 минуту 7 секунд:
    И вообще mail.ru это гнездилище спаммеров, ничего удивительного если его банят.
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Отправлял как-то письма sendmail-ом с локалхоста (из php-скриптов), вроде везде во входящие приходило. Нужно, чтобы тот адрес, который ты указываешь в заголовке From - соответствовал реальному твоему почтовому ящику, с которого ты отправляешь письмо. И ещё - нужно заголовки смотреть. По-моему, я менял этот
    Код (Text):
    1. X-Mailer: PHP
    на что-то другое.
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    реальному твоему почтовому ящику того домена, с которого ты отправляешь =)
    но это не обязательно. зависит от ситуации и настроек.
     
  9. kilogram

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

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Попробовал отправлять с реального адреса эл. почты, в маил.ру, яндекс. ру, qip.ru, meta.ua, gmail.com приходит во входящие, в ukr.net,i.ua в спам.

    Слышал что лучше пользоваться какими-то библиотеками для того чтобы в СПАМ не попадали письма, может кто знает какими?
     
  10. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    библиотеки наврядли ) скорее твой адрес уже в черном списке из-за содержимого или подозрительной активности. попробуй прочитать полные заголовки там где забанили. на "последней миле" к письму могут добавиться заголовки с именами "X-Spam-*", там бывает полезная инфа почему именно.
     
  11. kilogram

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

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Вот заголовок с i.ua

    Код (Text):
    1. Received: from smtp17.mail.ru ([94.100.176.154])
    2.     by out03.mi6.kiev.ua with esmtp (Exim 4.76)
    3.     (envelope-from <usa-1400@mail.ru>)
    4.     id 1SfSu5-0008EJ-1f
    5.     for xxai@i.ua; Fri, 15 Jun 2012 12:33:17 +0300
    6. DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail;
    7.     h=Message-Id:Content-type:From:Subject:To:Date; bh=E5g00PvFNjZjXqs6UBLM5gHkMdcayEcOvDDLA/36aI0=;
    8.     b=Rt9UNE7BO0k5H1pAe4vTyNyl5RYoIIshQMSDNWVRITGZH58mR7bGai79owzsqHq+XRRBdGluEtD09UbDY3Y00oV5Y9nO+AAamsY0Nslzy7htEC+lf4bXptZm8MVSZkcO;
    9. Received: from [62.122.66.250] (port=62580 helo=mail.ru)
    10.     by smtp17.mail.ru with esmtpa (envelope-from <usa-1400@mail.ru>)
    11.     id 1SfSu3-0007jS-S8
    12.     for xxai@i.ua; Fri, 15 Jun 2012 13:33:16 +0400
    13. Date: Fri, 15 Jun 2012 12:33:19 +0300
    14. To: xxai@i.ua
    15. Subject: Привет
    16. X-PHP-Originating-Script: 0:index.php
    17. From: usa-1400@mail.ru
    18. Content-type:text/html; charset=UTF-8
    19. Message-Id: <E1SfSu3-0007jS-S8.usa-1400-mail-ru@smtp17.mail.ru>
    20. X-Spam: Not detected
    21. X-Mras: Ok
     
  12. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Мда, непонятно :D