Я изучаю, как отправить 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>
Я считаю, что у вас есть как минимум две проблемы:
php.ini-recommended
php.ini-dist
и php.ini-dist
являются соответственно примером и файлами конфигурации шаблонов; модификации к ним могут не повлиять на «настоящий» php.ini
, используемый в настоящее время вашим экземпляром PHP. Используйте phpinfo()
чтобы убедиться, что ваша конфигурация верна. Просто потому, что вы отправляете электронное письмо, это не значит, что он прибудет.
Как указывает Jhominal, файлы php.ini, которые вы модифицировали, являются просто примерами. Вам нужно будет узнать, где находится php.ini для вашего распространения и изменить его.
Как уже упоминалось другими, вы можете установить пользовательский заголовок. Однако, если вы не установите sendmail_from в php.ini, вам придется помнить, что нужно всегда его устанавливать.
Во всяком случае, вот довольно хорошая статья / учебник по отправке электронной почты с функцией mail () 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); }