PHP电子邮件表单脚本


PHP Email form script

嗨,我在博客上找到了这个PHP脚本

<?php
if(isset($_POST['submit'])) {
$to = "youremail@gmail.com";
$subject = "Forms";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$body = "From: $name_field'n E-Mail: $email_field'n Message:'n $message";
echo "Data has been submitted to $to!";
mail($to, $subject, $body);
} else {
echo "blarg!";
}
?>

在HTML 中执行以下操作时运行

<form method="POST" action="mailer.php">
Your Name<br>
<input type="text" name="name" size="19"><br>
<br>
Your Email<br>
<input type="text" name="email" size="19"><br>
<br>
Message<br>
<textarea rows="9" name="message" cols="30"></textarea>
<br>
<br>
<input type="submit" value="Submit" id="submitBTN" name="submit">
</form>

根据博客,我所要做的就是把html和php文件放在我的网络服务器上(我没有,所以我不能测试它)。它会向$to中指定的电子邮件发送电子邮件吗?我从来没有使用过PHP,但这并没有真正的意义,因为一旦它在网上,它就可以给别人发电子邮件。谢谢你的解释/如果这个脚本能直接运行的话!

理论上这应该可行,但您必须配置PHP才能使用电子邮件服务器。我建议使用类似PHPMailer的东西来发送电子邮件,这是我一直在做的;密码和电子邮件端口,与您的电子邮件客户端相同。

以下是有关在PHPMailer中使用Gmail的信息链接。

这个片段(取自PHPMailer自述文件)显示了如何配置服务器:

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'user@example.com';                 // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

现在,您可以为电子邮件的来源和收件人配置标题信息:

$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
$mail->addAddress('ellen@example.com');               // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

你甚至可以在电子邮件中添加附件:

$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

最后,我们将主题和正文放入电子邮件中:

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

现在,我们发送电子邮件:

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

您需要在服务器上设置一个邮件服务器才能发送电子邮件。

不过,不确定PHP需要在哪里指定。。

看看这里:examplep 中的php邮件设置

(链接中提到的Xampp是一个充当服务器的程序,这样人们就可以在线查看您的网页)

Xampp:https://www.apachefriends.org/index.html

我很久以前也做过同样的任务。我通过XAMPP(php和apache)和gmail完成了这项工作。在这里你可以找到一个完整的解释视频。