За последние 24 часа нас посетили 17785 программистов и 1625 роботов. Сейчас ищут 1337 программистов ...

Скрипт отправки письма php

Тема в разделе "Сделайте за меня", создана пользователем Dirol, 1 окт 2014.

  1. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    Вот нашёл хороший видео урок на YouTube http://youtu.be/zR1lHpC-VjQ
    на многих форумах говорят что функция mail не всегда работает стабильно и предложили используйте реализацию smtp !
    вот написал по видео уроку вот такой скрипт;
    Код (Text):
    1. <?php
    2. require 'phpmailer/PHPmailerAutoLoad.php';
    3.  
    4. $mail = new PHPMailer;
    5.  
    6. $mail->isSMTP();
    7.  
    8. $mail->Host = 'smtp.mail.ru';
    9. $mail->SMTPAuth = true;
    10. $mail->Username = 'username'; // Логин от Вашей почты
    11. $mail->Password = 'password';// Пароль от Вашей почты
    12. $mail->SMTPSecure = "ssl";
    13. $mail->Port = '465';
    14.  
    15. $mail->CharSet = 'UTF-8';
    16. $mail->From = 'моя@почта';
    17. $mail->FromName = 'Имя';
    18. $mail->addAddress ('дополнительный адрес','Имя');
    19. $mail->addAddress ('дополнительный адрес','Имя');
    20. $mail->addAddress ('дополнительный адрес','Имя');
    21.  
    22.  $mail->isHTML(true);
    23.  
    24. $mail->Subject = 'Тема письма';
    25. $mail->Body = 'Привет мир!<p>Это страка<b>HTML кода</b></p>';
    26. $mail->AltBody = 'Привет мир! Это альтернативное письмо';
    27.  
    28. if($mail->send() ){
    29.          echo 'Письмо отправлено';
    30.      }else{
    31.           echo 'Письмо не может быть отправлено.';
    32.           echo 'Ошибка:' . $mail->ErrorInfo;
    33.          }
    34.  
    35. ?>
    но и эта форма не сработала,то есть письмо отправляет,но по адресу не приходит.....остаётся только полагать что в настройках серверов хостинг провайдера проблема!, как и говорил в начале постов уважаемый Хыиуду....пользуюсь хостингом HOSTINGER.RU ...может кто подскажет хороший бесплатный хостинг для тестирования и просмотра сайта?
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Это так. Сама функция работает хорошо, но результат может быть странным. Например она может работать секунд 30. Или там допустим ваш IP в черном списке спамеров и почта, отправленная с вашего сервера не будет доходить до адресатов. Но можно сменить IP или хостинг. Так что я предпочитаю mail().
     
  3. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    это не так. функция mail вызывает системный агент отправки писем и не более того. то есть это некий аналог exec() и passthru(), но который ограничен только одной программой. если хостер криво настроил MTU/MTA то функция mail() от этого не станет работать неправильно. так что более корректно говорить:
    теперь по поводу
    это хороший подход. он конечно немного более ресурсоемкий так как в роли агента выступает ваш скрипт который выполняет обмен с smtp-сервером согласно почтовому протоколу. но на это можно закрыть глаза если на хостинге криво настроена системная отправка почты.

    как вы поняли что письмо ушло?
     
  4. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    на сайте заполнил все поля; ИМЯ,Ваш E_mail и ТЕКСТ и нажал отправить.....Письмо успешно отправлено !!!
    если менял запись в файле на;
    Код (Text):
    1.    <?php
    2. // Сообщение
    3. $message = "
    4. $_POST ['Имя']
    5. $_POST ['email']
    6. $_POST ['Текст']
    7. ";
    8. // Отправляем
    9. mail('моя@почта', 'Тема письма', $message);
    10. ?>
    то так же отправлялась....зато эта приходит на почту,но без самого текста письма!
     
  5. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    дай текущий исходник - прокомментирую ошибки. их много
     
  6. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    дружище какой именно...я уже в них сам запутался...с не привычки,первый раз....))
     
  7. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    тот код который сейчас не работает. по логике я так понимаю там должна быть форма обратной связи и обработчик этой формы который письмо отправляет.
     
  8. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    Сейчас стоит вот этот;
    Код (Text):
    1. <?php
    2. require 'phpmailer/PHPmailerAutoLoad.php';
    3.  
    4. $mail = new PHPMailer;
    5.  
    6. $mail->isSMTP();
    7.  
    8. $mail->Host = 'smtp.mail.ru';
    9. $mail->SMTPAuth = true;
    10. $mail->Username = 'username'; // Логин от Вашей почты
    11. $mail->Password = 'password';// Пароль от Вашей почты
    12. $mail->SMTPSecure = "ssl";
    13. $mail->Port = '465';
    14.  
    15. $mail->CharSet = 'UTF-8';
    16. $mail->From = 'почта@mail.ru';
    17. $mail->FromName = 'Имя';
    18. $mail->addAddress ('ополнительная почта','Имя');
    19. $mail->addAddress ('ополнительная почта','Имя');
    20. $mail->addAddress ('дополнительная почта','Имя');
    21.  
    22.  $mail->isHTML(true);
    23.  
    24. $mail->Subject = 'Тема письма';
    25. $mail->Body = 'Привет мир!<p>Это страка<b>HTML кода</b></p>';
    26. $mail->AltBody = 'Привет мир! Это альтернативное письмо';
    27.  
    28. if($mail->send() ){
    29.          echo 'Письмо отправлено';
    30.      }else{
    31.           echo 'Письмо не может быть отправлено.';
    32.           echo 'Ошибка:' . $mail->ErrorInfo;
    33.          }
    34.  
    35. ?>
     
  9. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и чего пишет?
     
  10. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    пишет, что почта отправлена!...а на почтовый ящик не приходит....и на добавочные почтовые ящики то же не приходит!
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    она и не обязана. =) отправило же ж.
     
  12. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    и что делать....как исправить?
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    универсального рецепта нет. исправляй. =)
    смотри, почему не ушла. в логах сервера, эссно.
     
  14. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    в том то и дело что не знаю как!
     
  15. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Отлично!
    Нужно глянуть например /var/log/maillog
     
  16. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    с домашнего сервака через сервак в датацентре письмо уходит нормально.
    c домашнего сервака через сервак мэйлу письмо уходит нормально.

    похоже у меня слишком прямые руки...

    поставь уровень дебага выше и дай сюда получившийся лог

    Добавлено спустя 3 минуты 48 секунд:
    а де он мэйл-лог своего мэйлрушного смтп возьмет? не путай парнишу)))) ему надо почитать протокол смтп обмена его несчастной машины и сервака мэйлру. у меня все отлично всё сработало. но я знаю рфц по почте поэтому не выебывался (хаха! матфильтр сосет) при составлении тестового письма. как ты можешь догадываться человек который не может нормально скрипт отладить скорее всего даже не подозревает о существовании стандартов и пытается сделать какую-то красоту которую тупо режет политика почтового протокола...
     
  17. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    извините я понимаю что глупый вопрос но я не знаю как и где посмотреть /var/log/maillog
     
  18. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    нигде не смотри. читай мое сообщение.
     
  19. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    я прошу прощения...как и где этот уровень?
     
  20. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я его не путаю. я его апгрейжу.
     
  21. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а можешь сначала почитать исходный код того класса которым ты решил воспользоваться. я понимаю что у тебя основная цель это чтоб письмо улетало. но если уж ты взялся за чужой код - прочитай его, пойми. подумай как им можно пользоваться. а не тупо из интернетов копируй код и думай потом почему не работает. вернее не думай а беги ныть на пхпру.

    мне вот например нравятся метод edebug и свойство SMTPDebug. я вот прям читаю описание второго и сурс первого и понимаю зачем оно нужно и как примерно должно работать.

    Добавлено спустя 50 секунд:
    смотри не брикни))))
     
  22. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    мне всё равно mail это или edebug и свойство SMTPDebug или smtp, главное что бы файл php корректно работал со всеми почта.....!!!

    Добавлено спустя 9 минут 5 секунд:
    ....))....все такие крутые по ту сторону монитора.....а как на улице встретишь,так начинают оправдываться....))
     
  23. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Будем в Ялте - пооправдываемся обязательно.
     
  24. Dirol

    Dirol Новичок

    С нами с:
    1 окт 2014
    Сообщения:
    25
    Симпатии:
    0
    с большим удовольствием...))
    ну так что поможет кто нибудь....или искать правду на других форумах....жаль конечно что придётся на другой форум уходить...((
     
  25. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А ты чего хочешь от нас? Некий скрипт рабочий ждёшь?