Попытка отправить данные формы на мою электронную почту

0

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

HTML-форма....

<form name="contactform" method="POST" action="formphp.php">

<table width="450px">
<tr>
    <td valign="top">
    <label for="name">Name *</label>
</td>
    <td valign="top">
    <input  type="text" name="Name" maxlength="50" size="30">
</td>
</tr>
<tr>

    <td valign="top"">

    <label for="email">Email *</label>
</td>
    <td valign="top">
    <input  type="text" name="Email" maxlength="50" size="30">
</td>
</tr>

<td valign="top">

    <label for="subject">Subject *</label>
</td>
    <td valign="top">
    <input  type="text" name="Subject" maxlength="50" size="30">
</td>
</tr>

<tr>
    <td valign="top">
    <label for="questions">Question/Feedback *</label>
</td>
    <td valign="top">
    <textarea name="Question" cols="40" rows="5"></textarea>
</td>
</tr>

<tr>
    <td colspan="2" style="text-align:center">
    <input type="submit" value="Submit">
</td>
</tr>
</table>
</form>

PHP-код...

<?php
/* set email */
$myemail = "[email protected]";

/* declare id */
$Name = $_POST['Name'];
$Email = $_POST['Email'];
$subject = $_POST['Subject'];
$Questions = $_POST['Questions'];

/* set subject heading */
$subject = "Subject";

/* Message */
$message = "$Name + $Email + $Questions

";

/* redirect this form after email sent */
header("location: sent.html");
?>
Теги:
forms
email

3 ответа

2
Лучший ответ

Попробуйте использовать библиотеку PHPMailer: https://github.com/PHPMailer/PHPMailer

$mail = new PHPMailer(true); 

$html = '
<!DOCTYPE html>
<html>
<head>
    <title>Contact</title>
</head>
<body>
    CONTENT HERE
</body>
</html>
';

try {
    $mail->AddAddress('[email protected]', 'Domain Name');
    $mail->SetFrom('[email protected]', 'Domain Name');
    $mail->Subject = 'Contact from domain.com';
    $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; 
    $mail->MsgHTML($html);
    if(!$mail->send()) {
       echo 'Message could not be sent.';
       echo 'Mailer Error: ' . $mail->ErrorInfo;
       exit;
    }else{
       header("location: sent.html");
    }
} catch (phpmailerException $e) {
    echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
    echo $e->getMessage(); //Boring error messages from anything else!
}
1

Проблема с вашим PHP-кодом заключается в том, что вы никогда не отправляли электронное письмо. Чтобы отправить почту в php, вы используете этот синтаксис:

mail($sendto, $subject, $msg)

В вашем случае вы должны поместить код сразу после того, как вы установите свое сообщение $, и код будет выглядеть так:

mail($myemail, $subject, $message)

Для получения дополнительной информации о php-почте читайте здесь: http://php.net/manual/en/function.mail.php

0

Добавьте следующий код insted header("location: sent.html");

if(mail($Email,$subject,$message))
    header("location: sent.html");
else
   die('Failed to send an email');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню