表单到邮件
本页面将跳出客户端编码的界限,探讨一个常见的服务器端技术。它概述了一种非常基本的方法,可以将提交的表单内容发送到任何指定的电子邮件地址。你知道的,就像“联系我们”表单一样。
实现这一目标的方法有很多,可以使用各种奇妙的编程语言,但我们将使用一种名为 **PHP** 的脚本语言。
步骤 1:创建一个 PHP 页面
如果将网页的扩展名设置为“.php”而不是“.html”,则托管该页面的服务器将知道执行其中包含的任何 PHP 代码。所以,首先,只需将一个空的 HTML 页面保存为“contact.php”。
步骤 2:创建一个表单
您可以阅读 HTML 初学者教程中有关表单的详细信息。为了直接开始,让我们使用以下极其精简的表单 HTML
<form method="post" action="contact.php">
<textarea name="message"></textarea>
<input type="submit">
</form>
一切都很简单,对吧?当表单提交时,action="contact.php" 部分告诉页面将表单内容发送给自己。是不是很疯狂?我们在这里使用同一个页面完成了所有操作……
步骤 3:以电子邮件形式发送表单数据
在页面顶部,甚至在 Doctype 之前,我们将输入少量 PHP 来处理表单数据
<?php
if($_POST["message"]) {
mail("your@email.address", "Form to email message", $_POST["message"], "From: an@email.address");
}
?>
“<?php” 标记 PHP 的开始,而“?>” 标记 PHP 的结束。服务器将尝试将两者之间的所有内容作为 PHP 执行。
此代码检查是否已发送表单数据,如果已发送,则使用 `mail` 函数将数据作为电子邮件发送到“your@email.address”,主题为“Form to email message”,邮件正文与名为“message”的表单字段相同。电子邮件将显示为来自“an@email.address”。
总结
上传后(需要服务器运行——您无法在本地运行),您可以尝试一下。
以下是正在发生的事情
- 表单提交后,页面会将数据发送给自己。
- 页面将检查是否已发送数据,如果已发送,则将其作为电子邮件发送。
- 浏览器将加载页面的后续 HTML,包括您的表单。
后续步骤:一个基本的“联系我们”表单
好的,我们如何让它更像一个“联系我们”表单?我们可以将发件人姓名和发件人电子邮件地址添加到消息中,并包含一个确认消息,让发件人知道他们的消息已发送。这是全部内容
<?php if($_POST["submit"]) { $recipient="your@email.address"; $subject="Form to email message"; $sender=$_POST["sender"]; $senderEmail=$_POST["senderEmail"]; $message=$_POST["message"]; $mailBody="Name: $sender\nEmail: $senderEmail\n\n$message"; mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>"); $thankYou="<p>Thank you! Your message has been sent.</p>"; } ?><!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Contact form to email</title> </head> <body><?=$thankYou ?><form method="post" action="contact.php"> <label>Name:</label> <input name="sender"> <label>Email address:</label> <input name="senderEmail"> <label>Message:</label> <textarea rows="5" cols="20" name="message"></textarea> <input type="submit" name="submit"> </form> </body> </html>
这次我们正在
- 检查表单是否已发送(这次通过查找名为“submit”的表单字段),如果已发送……
- 设置一堆变量
- 您的电子邮件地址
- 电子邮件主题
- 发件人姓名(从表单中获取)
- 发件人电子邮件地址(从表单中获取)
- 消息(从表单中获取)
- 发送电子邮件,使用所有这些变量
- 为确认消息设置一个变量
- 加载 HTML,包括确认消息
如果页面加载且没有发送表单数据,则不会组成电子邮件,也不会设置确认消息,因此只会加载页面的 HTML。
