📜  在 php 中提交表单并发送电子邮件(1)

📅  最后修改于: 2023-12-03 15:23:15.251000             🧑  作者: Mango

在 PHP 中提交表单并发送电子邮件

在网站开发中,表单提交是一个很重要的功能,而将表单填写的信息通过电子邮件发送给网站管理员可以方便快捷地处理信息。本文将介绍如何在 PHP 中提交表单并发送电子邮件。

准备工作

在进行本文的操作之前,我们需要先安装好 PHP,并确保能够使用本地的 SMTP 服务器或者其他邮件发送方式。可以使用开源的 PHPMailer 库来发送电子邮件。

编写 HTML 表单

首先,我们需要编写一个 HTML 表单,包括需要提交的各种信息。例如,一个简单的联系我们的表单可以包括姓名、电子邮件、主题和消息内容等信息:

<form action="sendemail.php" method="post">
  <label for="name">姓名:</label>
  <input type="text" name="name" id="name">
  <br>
  <label for="email">电子邮件:</label>
  <input type="email" name="email" id="email">
  <br>
  <label for="subject">主题:</label>
  <input type="text" name="subject" id="subject">
  <br>
  <label for="message">消息内容:</label>
  <textarea name="message" id="message" rows="5"></textarea>
  <br>
  <input type="submit" value="发送">
</form>

请注意,表单的 action 属性指向 sendemail.php 文件,这是我们将通过 PHP 来处理表单提交的文件。

编写 PHP 脚本

sendemail.php 中,我们需要首先获取表单提交的各个字段,并进行一些基本的验证。例如,确保必填字段不为空,电子邮件格式正确等。

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];

if (empty($name) || empty($email) || empty($subject) || empty($message)) {
  die("请填写必填字段。");
}

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  die("请输入有效的电子邮件地址。");
}

接下来,我们可以使用 PHPMailer 库来发送电子邮件。在这里,我们需要设置一些必要的参数,例如发件人、收件人、邮件主题和内容等。完整的示例如下:

require 'vendor/autoload.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true);

try {
  // 启用调试模式
  $mail->SMTPDebug = 0;
  // 设置邮件服务器的地址和端口
  $mail->isSMTP();
  $mail->Host = 'smtp.example.com';
  $mail->Port = 25;
  // 如果需要验证,设置用户名和密码
  $mail->SMTPAuth = true;
  $mail->Username = 'username';
  $mail->Password = 'password';
  // 设置发件人和收件人
  $mail->setFrom($email, $name);
  $mail->addAddress('admin@example.com');
  // 设置邮件主题和内容
  $mail->Subject = $subject;
  $mail->Body = $message;
  // 发送邮件
  $mail->send();
  // 显示成功信息
  echo '邮件发送成功!';
} catch (Exception $e) {
  // 显示错误信息
  echo '邮件发送失败: ' . $mail->ErrorInfo;
}

在这个脚本中,我们需要首先导入 PHPMailer 库,然后设置 SMTP 服务器地址和端口,如果需要验证,设置用户名和密码。接下来,我们需要设置发件人和收件人的电子邮件地址,以及邮件主题和内容。最后,我们调用 send() 方法来发送邮件,catch 异常并显示错误信息。

总结

在本文中,我们介绍了如何在 PHP 中提交表单并发送电子邮件。首先,我们需要编写一个 HTML 表单,然后在 PHP 脚本中获取表单提交的各个字段,并使用 PHPMailer 库来发送电子邮件。在实际开发中,可以根据具体需求进行修改和扩展。

完整的示例代码见 GitHub