Intereting Posts
PHP MCRYPT_RIJNDAEL_128 шифрование в C # Как преобразовать почтовый индекс в Geolocation (широта и longitutde) с помощью Google Maps api? Отправка электронной почты с помощью CodeIgniter с использованием «mail» или «sendmail» mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, boolean означает, что и как его можно исправить? array_intersect переменное количество массивов Symfony2: динамическая генерация встроенной формы Предотвращать отправку писем, обрабатываемых как нежелательные письма, используя функцию php mail мой веб-URL не работает в календаре Google Проблема с кодировкой запроса php mysql Как получить вывод при использовании fsockopen для открытия php-страницы? Отправить почту из необработанного тела для целей тестирования UPDATE concat и переменные PHP получает значения, разделенные запятыми, которые не вложены Как получить Open Graph Protocol веб-страницы по php? Telegram BOT Api: как отправить фотографию с помощью PHP?

Форма PHP mail () не заполняет отправку электронной почты

<?php ini_set("mail.log", "/tmp/mail.log"); ini_set("mail.add_x_header", TRUE); define("TITLE", "Contact Us | MicroUrb"); include('includes/header.php'); /* NOTE: In the form in contact.php, the name text field has the name "name". If the user submits the form, the $_POST['name'] variable will be automatically created and will contain the text they typed into the field. The $_POST['email'] variable will contain whatever they typed into the email field. PHP used in this script: pre_match() - Perform a regular expression match - http://ca2.php.net/preg_match $_POST - An associative array of variables passed to the current script via the HTTP POST method. - http://www.php.net/manual/en/reserved.variables.post.php trim() - Strip whitespace (or other characters) from the beginning and end of a string - http://www.php.net/manual/en/function.trim.php exit - output a message and terminate the current script - http://www.php.net/manual/en/function.exit.php die() - Equivalent to exit - http://ca1.php.net/manual/en/function.die.php wordwrap() - Wraps a string to a given number of characters - http://ca1.php.net/manual/en/function.wordwrap.php mail() - Send mail - http://ca1.php.net/manual/en/function.mail.php */ ?> <div id="contact"> <hr> <h1 class="contact">Get in touch with us!</h1> <?php // Check for header injections function has_header_injection($str) { return preg_match("/[\r\n]/", $str); } if (isset($_POST['contact_submit'])) { $name = trim($_POST['name']); $email = trim($_POST['email']); $msg = $_POST['message']; // Check to see if $name or $email have header injections if (has_header_injection($name) || has_header_injection($email)) { die(); // If true, kill the script } if (!$name || !$email || !$msg) { echo '<h4 class="error">All fields required.</h4><a href="contact.php" class="button block">Go back and try again</a>'; exit; } // Add the recipient email to a variable $to = "renaissance.scholar2012@gmail.com"; // Create a subject $subject = "$name sent you a message via your contact form"; // Construct message $message = "Name: $name\r\n"; $message .= "Email: $email\r\n"; $message .= "Message:\r\n$msg"; // If the subscribed checkbox was checked if (isset($_POST['subscribe']) && $_POST['subscribe'] == 'Subscribe') { // Add a new line to message variable $message .= "\r\n\r\nPlease add $email to the mailing list.\r\n"; } $message = wordwrap($message, 72); // Set mail headers into a variable $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $headers .= "From: $name <$email> \r\n"; $headers .= "X-Priority: 1\r\n"; $headers .= "X-MSMail-Priority: High\r\n"; // Send the email mail($to, $subject, $message, $headers); ?> <!-- Show success message afte email has been sent --> <h5>Thanks for contacting MicroUrb!</h5> <p>Please allow 24 hours for a response.</p> <p><a href="index.php" class="button block">&laquo; Go to Home Page</a></p> <?php } else { ?> <form method="post" action="" id="contact-form"> <label for="name">Your name</label> <input type="text" id="name" name="name"> <label for="email">Your email</label> <input type="email" id="email" name="email"> <label for="message">and your message</label> <textarea id="message" name="message"></textarea> <input type="checkbox" id="subscribe" name="name" value="Subscribe"> <label for="">Subscribe to newsletter</label> <input type="submit" class="button next" name="contact_submit" value="Send Message"> </form> <?php } ?> <hr> </div> <?php include('includes/footer.php'); ?> 

Я пробовал создать простую форму письма. Сама форма находится на моей странице contact.php. Я хотел бы проверить, что код отлично подает и отправляет электронное письмо. Пожалуйста помоги.

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

https://gist.github.com/zulhfreelancer/4663d11e413c76c6393fc135f72a52ce

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

Это то, что я пытался сделать до сих пор:

  1. Я убедился, что сообщения об ошибках включены и настроены на отчет обо всех ошибках, и у меня есть этот код в моем файле index.php:

     <?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 'On'); define("TITLE", "Home | MicroUrb"); include('includes/header.php'); ?> <div id="philosophy"> <hr> <h1>MicroUrb's Philosophy</h1> <p>Here at MicroUrb we guarantee you organically grown produce, because we grew it ourselves and we are local. We're not pompous, we're proud. We're proud of our work, our quality, our environment and our love for fresh local produce and family.</p> <p>Thank you, from your local urban family farm.</p> <hr> </div><!-- philosophy --> <?php include('includes/footer.php'); ?> в <?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 'On'); define("TITLE", "Home | MicroUrb"); include('includes/header.php'); ?> <div id="philosophy"> <hr> <h1>MicroUrb's Philosophy</h1> <p>Here at MicroUrb we guarantee you organically grown produce, because we grew it ourselves and we are local. We're not pompous, we're proud. We're proud of our work, our quality, our environment and our love for fresh local produce and family.</p> <p>Thank you, from your local urban family farm.</p> <hr> </div><!-- philosophy --> <?php include('includes/footer.php'); ?> в <?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 'On'); define("TITLE", "Home | MicroUrb"); include('includes/header.php'); ?> <div id="philosophy"> <hr> <h1>MicroUrb's Philosophy</h1> <p>Here at MicroUrb we guarantee you organically grown produce, because we grew it ourselves and we are local. We're not pompous, we're proud. We're proud of our work, our quality, our environment and our love for fresh local produce and family.</p> <p>Thank you, from your local urban family farm.</p> <hr> </div><!-- philosophy --> <?php include('includes/footer.php'); ?> 
  2. Если вы посмотрите на мой код в contact.php, вы увидите, что вызывается функция mail ().

  3. Я проверил журналы MAMP Pro, а для Postfix у меня ничего не было, потому что Postfix, похоже, не работает (может это проблема?) Для журналов apache у меня была эта ошибка:

     unknown: warning: /etc/postfix/main.cf, line 696: overriding earlier entry: inet_protocols=all sendmail: warning: /etc/postfix/main.cf, line 676: overriding earlier entry: inet_protocols=ipv4 sendmail: warning: /etc/postfix/main.cf, line 696: overriding earlier entry: inet_protocols=all postdrop: warning: /etc/postfix/main.cf, line 696: overriding earlier entry: inet_protocols=all 

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

 myorigin = live.com myhostname = smtp.live.com relayhost = smtp.live.com:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = plain inet_protocols = ipv4 smtp_use_tls = yes smtp_tls_security_level=encrypt tls_random_source=dev:/dev/urandom 

Строка 8 выше противоречила inet_protocols = all, поэтому я удалил строку 8 выше, и проблема исчезла, но исходная проблема неспособности отправлять почту по-прежнему существует.

  1. Я не использую оператор подавления ошибок.
  2. Мне может понадобиться помощь в проверке, если mail () возвращает true или false.
  3. Я проверил папки спама учетных записей электронной почты, в которые я пытался отправить почту.
  4. Полагаю, что я поставил все заголовки писем:

     // Set mail headers into a variable $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; $headers .= "From: $name <$email> \r\n"; $headers .= "X-Priority: 1\r\n"; $headers .= "X-MSMail-Priority: High\r\n"; 
  5. Я считаю, что значение получателя верно:

      // Send the email mail($to, $subject, $message, $headers); 
  6. Я попробовал несколько учетных записей электронной почты, такую ​​же проблему.

  7. Я считаю, что метод формы соответствует коду.
  8. Является ли Postfix на моем MAMP Pro неработающей проблемой?
  9. Я включил PHP custom.log.
  10. Должен ли я просто называть это закрытием и использовать другую почтовую программу или другой способ разработки моей контактной формы на PHP, которая будет меньше головной боли?

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

Я могу только догадываться, что моя проблема более конкретна для того, чтобы заставить Postfix работать на моем MAMP Pro. Я не проверяю, верно ли mail () true или false, или мне просто нужно перейти с PHPMailer или какой-либо другой.

Related of "Форма PHP mail () не заполняет отправку электронной почты"