Отправка электронной почты из html-формы с использованием php

Я пробовал это весь день, но я не могу понять, как отправить электронное письмо из моей контактной формы html, содержащей информацию из формы, на мой адрес электронной почты. Im new to php.

Ive попробовал запустить это, загрузив его на бесплатный веб-хостинг. Я получаю сообщение «успех!». когда я нажимаю кнопку отправки в моей форме html, но на самом деле не отправляется электронное письмо.

Любая помощь приветствуется.

PHP-скрипт:

<?php //Subject $subject ="Contact Form Submission"; // Name $name =$_POST['InputName']; // Message $message =$_POST['InputMessage']; //Mail of Sender $email =$_POST['InputEmail']; //From $header = "From:$name<$email>"; $send_contact=mail("myemail@gmail.com",$subject,$message,$header); //Check if mail was sent if($send_contact){ echo "Success!"; } else { echo "Error!"; } ?> 

РЕДАКТИРОВАТЬ: Подумал об этом после целого дня проб и ошибок. Проблема заключалась в бесплатном веб-хосте, который я использовал. Изменены хосты, и код начал работать нормально. Надеюсь, это поможет кому-то в будущем. Спасибо всем за помощь.

У меня довольно хорошая идея, почему ваш код не работает. Это случилось со мной давным-давно. Причина, по которой ваш код не работает, заключается в следующем:

  • Когда вы передаете «из» в заголовках, php ожидает, что существующая учетная запись электронной почты вашего
    сервер. Например: $headers = 'From: emailacc@yourserver.com';
  • Итак, первое, что вам нужно сделать, это создать учетную запись электронной почты на вашем сервере. Затем добавьте header From в адрес электронной почты, который вы только что создали.
  • Поле From в $headers не является From как вы думаете.
  • <?php
  • $email = $_POST["InputEmail"];
  • $subject = $_POST["InputSubject"];
  • $message = "From: ".$email.", ".$_POST["InputMessage"]; // вы помещаете адрес электронной почты из формы ввода здесь
  • $headers = 'From: emailacc@yourserver.com'; // здесь указан адрес электронной почты, из которого вы хотите отправить электронное письмо (т. е. адрес электронной почты вашего сервера)
  • mail($to, $subject, $message, $headers)
  • ?>

Я уверен, что это сработает 🙂

Сделайте снимок.

Я немного изменил переменную $header , так что вместо того, чтобы устанавливать электронную почту как « $ email » , она фактически будет проходить через опубликованное электронное письмо, введенное в форму. Это относится и к имени.

Я также сделал так, чтобы вы передавали функцию почты через параметры оператора if , а не устанавливали новую переменную.

 $headers = "From: " . $name . "<" . $email . ">"; // notice new concatenation if(mail("myemail@gmail.com", "Contact Form Submission", $message, $headers)){ // success message } else { // error message } 

Надеюсь, это поможет! 🙂

Попробуйте добавить пробелы после «=», которые могут быть проблемой,

Если это не сработает, вы можете попытаться использовать это

  <?php $emailvariable = $_POST['InputEmail'] $to = 'example@gmail.com'; $subject = "Form" $message = $_POST['InputMessage']; $headers = "From: $emailvariable"; mail($to, $subject, $message, $headers); ?> 

Надеюсь это поможет