Не удается отправить электронное письмо с помощью функции mail () php

#php #email

#php #Адрес электронной почты

Вопрос:

 <?php
   SendEmail("makovetskiyd@yahoo.co.uk","Dima", "trololo");
   function SendEmail($to,$user_name, $user_password)
   {

     $subject="Political forum: registration";
     $body = 'Your user name is: ".$user_name  <br/>'.$user_name.' Your password is: '.$user_password.'<br/><br/> Click the link below for validation: <a href="#">Validation_Link</a>';

     $headers="FROM: $torn";
     $headers.=" Content=type: text/htmlrn";


   if (mail($to, $subject, $body, $headers)) {
       echo("<p>Message successfully sent!</p>");
      } else {
       echo("<p>Message delivery failed...</p>");
      }
   }

?>
  

Вышеуказанный сбой!!!

Я немного почитал и обнаружил, что вам нужно изменить это в вашем php.ini:

; Только для Win32. ; http://php.net/smtp SMTP = локальный хост ; http://php.net/smtp-port smtp_port = 25

; Только для Win32. ; http://php.net/sendmail-from отправить почту из = yourguru27@gmail.com

Я сделал, но это все равно не удается

Сообщение:

 Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:xampphtdocsPoliticalForumStoredProcedureUseremail.php on line 16
  

Ошибка доставки сообщения…

Комментарии:

1. что означает «Сбой»? Есть сообщения об ошибках?

2. Вы получаете какие-либо сообщения об ошибках? Если это тихая ошибка, попробуйте var_dump error_get_last() после выполнения mail()

3. извините, забыл добавить … добавлено выше

4. На вашем компьютере настроен SMTP-сервер?

5. ну, я не уверен, что это такое…

Ответ №1:

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

о том, почему это не работает: вы, кажется, пытаетесь отправить на адрес yahoo.. многие серверы отказываются отправлять письма, которые приходят с одного и того же адреса (особенно если вы отправляете со своего собственного сервера, а не с yahoo)

поэтому вместо использования адреса электронной почты пользователя в качестве отправителя выберите другой, поэтому вам нужно изменить эту строку:

 $headers="FROM: $torn";
  

и используйте что-то другое, кроме $to

Комментарии:

1. Я говорю это (это может быть проблемой с сервером), потому что я запустил ваш скрипт, но использовал личный адрес электронной почты, и я получил сообщение

2. no..it не помогает: я попробовал перенаправить электронную почту на gmail .. который легко принимает электронные письма.. Я все еще получаю это: Предупреждение: mail() [function.mail]: не удалось подключиться к почтовому серверу через порт «localhost» 25, проверьте настройки «SMTP» и «smtp_port» в php.ini или используйте ini_set() в C:xampphtdocsPoliticalForumStoredProcedureUseremail.php в строке 16

3. но вы уверены, что сможете отправлять электронные письма? у вас установлен smtp-сервер?

4. также: вы сказали, что внесли изменения в свой файл php.ini. вы перезапустили сервер apache после этого? изменения будут использованы только после перезагрузки

5. что такое smptp-сервер, у меня есть xamp и Windows xp package 3.. Если smtp не пришел с ними .. я не думаю, что у меня есть