2014-12-13 2 views
-1

Я новичок в php и хотел написать программу, которая получает информацию из формы и отправляет эту информацию с помощью функции почты php. Я использую XAMPP 5.5-19 для моей настройки. Я исследовал несколько тем о том, как заставить эту программу работать, но не имел успеха. Когда я смотрю на свою phpinfo(); читает следующее:отправка почты с использованием функции php mail XAMPP 5.5-19

SMTP = smtp.gmail.com
smtp_port = 587
sendmail_path =/USR/SBIN/Sendmail -t -i -F
sendmail_from = нет значения

мой код

</head> 
<body> 
    <h3>Need More Information Contact Us!</h3> 
    <div> 
     <form method="post" action=""> 
      <label for="name">Name</label> 
      <div> 
       <input type="text" name="name" /> 
      </div> 
      <label for="tele">Number</label> 
      <div> 
       <input type="text" name="tele" /> 
      </div> 
      <label for="subject">Subject</label> 
      <div> 
       <textarea rows="5" cols="40" name="subject"></textarea> 
      </div> 
      <input type="submit" value="Submit" name="sub" /> 
     </form> 
     <?php 
      if(isset($_POST['sub'])) 
      { 
       $name = $_POST['name']; 
       $number = $_POST['tele']; 
       $subject = $_POST['subject']; 
       $to = '[email protected]'; 
       mail($to, $subject, $name,$number); 
      } 
     ?> 
    </div> 
</body> 

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

ответ

1

Вы работаете на localhost?

Если да, то SMTP не работает на localhost, иначе ваш код будет идеальным.

+0

Да, я работаю на localhost Я пытался переконфигурировать свой php.ini по ссылке, предложенной Энтони Гиббсом. – meddy

+0

их, SMTP не работает на localhost –

+0

Есть ли что-нибудь, что можно сделать, чтобы исправить проблему SMTP ?? – meddy

1

Поместите свою часть php перед любым html. Таким образом, если ваш пользовательский адрес действителен, вы можете перенаправить страницу.

См. Заголовок php. Также смотрите методы проверки пользовательских данных в Интернете. Основное правило, никогда не доверяйте пользователям отправлять данные.

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

`<input type='hidden' name='sub' value='1'>` 

Ваша почтовая функция в основном состоит из трех частей, 4-й вариант не является обязательным. И вы можете использовать это, чтобы получить настоящую фантазию.

mail (to, subject, message);

поэтому в вашем коде;

$msg = $name."\r\n"; 
$msg .= $number."\r\n"; 
mail($to, $subject, $msg); 

вы можете подтвердить; $ mail_status = mail ($ to, $ subject, $ msg); если ($ mail_status) {сделать что-то} ` еще {сделать это, когда ошибка}

на XAMPP, если нет ошибок, это будет пустым или он будет делать {сделать что-то}, depnding как вы написали код

1

Откройте папку sendmail (/ usr/sbin/sendmail в соответствии с вашим phpinfo). Включите отладчик в sendmail.ini файле

; create debug log as debug.log (defaults to same directory as sendmail.exe) 
; uncomment to enable debugging 
debug_logfile=debug.log 

ли новый запрос и посмотреть, что говорит файл debug.log. Например, отсутствует проверка подлинности для smtp.google.com.

Я также хотел бы указать, что при свежих установках вам необходимо обновить php.ini, чтобы использовать sendmail.exe, но я думаю, что уже позаботились о том, чтобы судить по вашей phpinfo.

Edit:

Чтобы быть уверенным, пожалуйста, проверьте файл php.ini и найдите следующую строку:

sendmail_path = 

Если закомментирована с ; перед ним, удалите ;. Согласно статье, которую я только что прочитал о sendmail с MAMP, вы также можете попытаться ввести свой адрес электронной почты после пути.

Например: sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]

Другое дело, так как вы не смогли найти sendmail.ini

Какие файлы находятся в вашей папке Sendmail? Я считаю, что скрипт sendmail не имеет расширения файла на MAMP. В WAMP его исполняемая программа (.exe)

+0

В моем файле XAMPP содержится файл sendmail.php, но nat файл sendmail.ini, что должно Я делаю? – meddy

+0

Я обновил свой пост, пожалуйста, прочитайте и попробуйте новые предложения :) – KEK

Смежные вопросы