Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Отправка писем с сайта
Форумы портала PHP.SU » » Вопросы новичков » Отправка писем с сайта

Страниц (1): [1]
 

1. deadtoworld - 12 Декабря, 2016 - 09:10:44 - перейти к сообщению
Всем привет! Который день бьюсь над проблемой, которая для меня стала гигантской!
Не получается настроить отправку писем с сайта на почтовый ящик.
Пробую все сделать на локальном сервере MAMP на Mac OS.
Когда запускаю через localhost/ файлы .php , то не получается протестировать работоспособность страницы. И форма не проверяется заполнена ли или нет, и письма не уходят,и страницы с ошибками выбивает.

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form action="post.php" method="POST">
  3.         <input type="email" name="email" placeholder="Ваш email..." size="40" required>
  4.         <input type="submit" value="Скачать!">
  5. </form>
  6.  


PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $adminemail="mymail@gmail.com";
  4. $date=date("d.m.y");
  5. $time=date("H:i");
  6. $backurl="http://site.ru/success.html";  
  7. $msg="Заявка на скачивание";
  8. //---------------------------------------------------------------------- //
  9.  
  10. $email=$_POST['email'];
  11.  
  12. if (!preg_match("|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is",
  13. strtolower($email)))
  14.  {
  15.  echo "<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>. Вы указали неверные данные!";
  16.  } else {
  17.  $msg="
  18. <p>E-mail: $email</p>  
  19. ";
  20.  
  21. mail("$adminemail", "$date $time Сообщение от $email", "$msg");
  22.  
  23. print "<script language='Javascript'><!--
  24. function reload() {location = \"$backurl\"}; setTimeout('reload()', 6000);
  25. //--></script>
  26.  
  27. $msg
  28. <p>Заявка отправлена! Проверьте свой почтовый ящик</p>";  
  29.  }
  30. ?>
  31.  
2. Heavenanvil - 16 Декабря, 2016 - 09:01:37 - перейти к сообщению
Попробуйте вот так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $adminemail="mymail@gmail.com";
  3. $date=date("d.m.y");
  4. $time=date("H:i");
  5. $backurl="http://site.ru/success.html";  
  6. $msg="Заявка на скачивание";
  7. $headers= "MIME-Version: 1.0\r\n";
  8. $headers .='Content-Type: text/html; charset="utf-8"'."\n";
  9. //---------------------------------------------------------------------- //
  10.  
  11. $email=$_POST['email'];
  12.  
  13. if (!preg_match("|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is",
  14. strtolower($email)))
  15.  {
  16.  echo "<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>. Вы указали неверные данные!";
  17.  } else {
  18.  $msg="$email;
  19.  
  20. mail($adminemail, $msg, "Заявка на скачивание от ".$email."<br>".$date."<br>".$time, $headers);
  21.  
  22. print "<script language='Javascript'><!--
  23. function reload() {location = \"$backurl\"}; setTimeout('reload()', 6000);
  24. //--></script>
  25.  
  26. $msg
  27. <p>Заявка отправлена! Проверьте свой почтовый ящик</p>";  
  28.  }
  29. ?>

Обратите внимание на $headers, $msg и функцию mail
Но помните, что частенько письма, созданные через php попадают в спам.

У меня этот код работает. Но на хостинге, локально не проверял.
3. broshurkaplus - 21 Декабря, 2016 - 11:15:45 - перейти к сообщению
быть может по настройкам локальный сервер складывает отправляемые письма в какую-либо папку на компе?

 

Powered by ExBB FM 1.0 RC1