我正在创建一个预订表格作为帮助,但已决定通过域而不是服务器发送邮件。这主要是为了更好的安全性和更少的响应和数据传输限制。
最近几天我一直在研究这个,并试图自学如何让它发挥作用。我现在有一个非常简单的工作示例,可以在下面看到。
这是简单的预订表格:
<form method="post" name="process.php" action="process.php">
<p>Name:</p><br><input type="text" name="name"><br><br>
<p>Email Address:</p><br><input type="email" name="email"><br><br>
<br>
<input type="submit" name="submit" value="Send Email">
然后在process.php我有这个工作代码:
<?php
use PHPMailer\PHPMailer\PHPMailer;
if(isset($_POST['submit']))
{
// Values need to be santiised
$name = $_POST['name']; //Name of the person requesting a booking
$email = $_POST['email']; //Email of the person requesting a booking
require '../vendor/autoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'test@handler.net';
$mail->Password = '[PASSWORD]';
$mail->setFrom('test@handler.net'); // All emails would be sent from the handler.net domain to the bookings email of the other domain. (Using test to test, will be noreply)
$mail->addAddress('bookings@salon.com'); // Recipient of the email should be the bookings address, this won't change.
$mail->addReplyTo($email); // The reply to address will be the email address of the user who submitted the booking enquiry.
if(!$mail->send()) { // Send the email.
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent.';
}
}
?>
上面的代码有效并将电子邮件从正确的地址发送到正确的地址。那是在一个站点上public_html/testing并且已被移动到另一个站点中,public_html/booking因此相对路径将是相同的。此目录中的唯一文件是index.php(表单)和send.php(带有确认消息的流程文件)
出于某种原因,这个包含所有表单值的新代码将不会发送。老实说,我不太确定为什么它现在不起作用,因此将非常感谢任何指针。
HUX布斯
海绵宝宝撒
侃侃无极
多次向同一地址发送电子邮件时达到“已发送电子邮件的收件人”配额
邮件发送错误
使用wordpress发送邮件显示主机禁用了mail()函数,怎么办?
怎么做电子邮件超链接?