Intereting Posts
Что может вызвать прерывистый SQLSTATE Нет таких ошибок файла или каталога из php PDO mysql в Debian Lenny? удалить массив «wrapping» (удалить родительский, сохранить дочерние элементы) PHP сортирует массив массива PDO Автоматическое сглаживание при извлечении? Zend Framework 2 отображает представление в представлении popen возвращает результат после задержки? Как я могу создать динамический Javascript? Транслитерировать любой конвертируемый utf8 char в эквивалент ascii Как сделать каскадный выпадающий список в PHP с помощью jQuery PHP / JS / JQUERY: интеллектуальный метод автоматической проверки / обновления состояния точек Не удается сохранить файл в каталог с помощью FPDF Изменение API графиков Google: тип изображения (размер) больше не работает? Форма Jquery не показывает сообщение отправки на веб-сервере, но показывает сообщение отправки на локальном хосте Вопросы безопасности при создании электронной почты в Интернете установка phpunit и примеров

Как отправить электронное письмо в PHP надежно?

Я изучаю, как отправить email.i установил appserver и в файлах php.ini-dist и php.ini-рекомендуется я сделал следующие изменения

SMTP=localhost sendmail_from=me@localhost.com 

Я заменил localhost на mail.ptcl.net, который является моим провайдером dsl, и заменил me@localhost.com своим адресом электронной почты h_k9@live.com

Я получаю следующее сообщение, когда я отправляю форму

"warning: mail () [function.mail]:« sendmail_from »не установлен в php.ini или пользовательский заголовок« From: »отсутствует в C: \ AppServ \ www \ Hamza \ send_simpleform.php в строке 14 Следующее сообщение электронной почты был отправлен:

Хамза: хамза

h_k9@live.com

Сообщение: adasdas "

следующий – это сценарий, который я использую

 <html> <head> <title>Simple Feedback Form</title> </head> <body> <form method="post" action="send_simpleform.php"/> <p><strong>Your name</strong><br/> <input type="text" name="sender_name" size="30" /></p> <p><strong>Senders Email address</strong><br/> <input type="text" name="sender_email" size="30" /></p> <p><strong>Enter your Message here</strong><br/> <textarea name="message" cols="30" rows="5" wrap="virtual"></textarea></p> <p><input type="submit" value="send this form" name="submit"/></p> </form> </body> </html> <?php if(($_POST[sender_name]=="")||($_POST[sender_email]="")||($_POST[message==""] )) { header("location=simple_form.html"); exit; } $msg="E-MAIL SENT FROM WWW SITE\n"; $msg="Sender's Name: $_POST[sender_name]\n"; $msg="Sender's E-Mal ID: $_POST[sender_email]\n"; $msg="Message: $_POST[message]\n"; $to="h_k9@live.com"; $subject="Web site feedback"; $mailholders="from my website<geriadress@yourdomain.com>\n"; $mailheader="Reply-to: $_POST[sender_email]\n"; mail($to, $subject,$msg,$mailheaders); ?> <html> <head> <title>Simple Feedback Form Sent</title> </head> <body> <h1>The following e-mail has been sent:</h1> <p><strong>Hamza:</strong><br\> <?php echo "$_POST[sender_name]";?> <p><strong>h_k9@live.com</strong><br\> <?php echo "$_POST[sender_email]";?> <p><strong>Message:</strong><br> <? echo "$_POST[message]";?> </body> </html> 

Я считаю, что у вас есть как минимум две проблемы:

  1. Я предполагаю, что php.ini-recommended php.ini-dist и php.ini-dist являются соответственно примером и файлами конфигурации шаблонов; модификации к ним могут не повлиять на «настоящий» php.ini , используемый в настоящее время вашим экземпляром PHP. Используйте phpinfo() чтобы убедиться, что ваша конфигурация верна.
  2. Спам-фильтры. У Джеффа Этвуда есть довольно хорошее сообщение в блоге о реализации проверок, которые делают серверы при проверке спама вашего сообщения электронной почты. Не забывайте:

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

Как указывает Jhominal, файлы php.ini, которые вы модифицировали, являются просто примерами. Вам нужно будет узнать, где находится php.ini для вашего распространения и изменить его.

Как уже упоминалось другими, вы можете установить пользовательский заголовок. Однако, если вы не установите sendmail_from в php.ini, вам придется помнить, что нужно всегда его устанавливать.

Во всяком случае, вот довольно хорошая статья / учебник по отправке электронной почты с функцией mail () PHP:

http://articles.sitepoint.com/article/advanced-email-php

Было бы проще использовать внешнюю библиотеку для отправки писем, так как http://swiftmailer.org/ вместо того, чтобы играть с php.ini

Никогда нехорошо быть зависимым от php.ini.

Попробуйте это: это сработало для меня на моем сайте.

 $email = "your e-mail address"; $myname = "name"; $mymail = "reply Address"; $subject = "SUBJECT LINE"; $body = "TEXT GOES HERE"; $headers = "Content-Type: text/plain; charset=us-ascii\nFrom: $myname <$mymail>\n Reply-To: <$mymail>\nBCC:<$mymail>\nReturn-Path: <$mymail>\nX-Mailer: PHP"; //send the email if ($email != "") { mail($email,$subject,$body,$headers); } при $email = "your e-mail address"; $myname = "name"; $mymail = "reply Address"; $subject = "SUBJECT LINE"; $body = "TEXT GOES HERE"; $headers = "Content-Type: text/plain; charset=us-ascii\nFrom: $myname <$mymail>\n Reply-To: <$mymail>\nBCC:<$mymail>\nReturn-Path: <$mymail>\nX-Mailer: PHP"; //send the email if ($email != "") { mail($email,$subject,$body,$headers); }