如何使用PHP脚本从填写表单获得电子邮件?



我试图创建一个php脚本发送一个填写表单从一个网站到特定的电子邮件。我试了好几种方法,但我的网络邮箱没有收到这封邮件。我也没有得到任何错误,所以我不确定问题在哪里。这些文件都在同一个目录下,网络邮件似乎运行得很好。如能得到您的建议,我将不胜感激。

这是email.php文件:

<?php
$error = ""; $successMessage = "";

if ($_POST) {
if (!$_POST["name"]) {
$error .= "A name is required.<br>";
}
if (!$_POST["email"]) {
$error .= "An email address is required.<br>";
}

if (!$_POST["choice"]) {
$error .= "Select a trial session.<br>";
}
if (!$_POST["date"]) {
$error .= "Select a date.<br>";
}

if ($_POST['email'] && filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false) {                
$error .= "The email address is invalid.<br>";
}

if ($error != "") {

$error = '<div class="alert alert-danger" role="alert"><p>There were error(s) in your form:</p>' . $error . '</div>';

} else {

$emailTo = "my@addressemail.com";
$subject = "trial session";
$name = $_POST['name'];
$choice = $_POST['choice'];
$date = $_POST['date'];
$headers = "From: ".$_POST['email'];

if (mail($emailTo, $subject, $name, $choice, $date, $headers)) {
$successMessage = '<div class="alert alert-success" role="alert">Your message was sent, we'll get back to you ASAP!</div>';
} else {
$error = '<div class="alert alert-danger" role="alert"><p><strong>Your message couldn't be sent - please try again later</div>';
}
}
}
?>

<div class="container">
<h1>Get in touch!</h1>

<div id="error"><? echo $error.$successMessage; ?></div>

<form method="post" action=”email.php”>
<fieldset class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" name="name" >
</fieldset>
<fieldset class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter email">
<small class="text-muted">We'll never share your email with anyone else.</small>
</fieldset>
<div class="mb-3">
<div class="control-label" id="choice" name="choice">Which trial session you would like to book?</div>
<select class="form-select" required aria-label="select example" id="choice" name="choice">
<option value="">I'm interested in...</option>
<option value="1">option1</option>
<option value="2">option2</option>
</select>
</div>
<div class="form-group"> <!-- Date input -->
<label class="control-label" for="date">Date</label>
<input class="form-control" id="date" name="date" placeholder="MM/DD/YYY" type="text"/>
</div>
<button type="submit" id="submit" class="btn btn-primary">Submit</button>
</form>
</div>

默认情况下,服务器不能发送邮件。你必须为它设置一个邮件服务器。根据我的经验,大多数时候我们必须使用SMTP服务器来发送电子邮件。

您可以在这里查看PHP中通过SMTP发送电子邮件的方式:

用PHP从SMTP服务器发送电子邮件

您还必须通过allow less secure apps设置您的电子邮件:

https://kb.synology.com/en-global/SRM/tutorial/How_to_use_Gmail_SMTP_server_to_send_emails_for_SRM

最新更新