📜  获取 php 以从表单发送电子邮件 - PHP (1)

📅  最后修改于: 2023-12-03 14:57:12.944000             🧑  作者: Mango

获取 PHP 以从表单发送电子邮件 - PHP

在 Web 开发中,向网站访问者发送电子邮件是一个常见的任务。对于 PHP 开发人员来说,从表单发送电子邮件是一种解决方案。在本文中,我们将看到如何使用 PHP 从表单中捕获信息,并使用电子邮件服务发送邮件。

邮件功能

必需参数

在使用 PHP 发送电子邮件之前,我们需要了解邮件所需参数。以下是一些必需的参数:

  • 发件人地址:电子邮件的发送者
  • 收件人地址:电子邮件的接收者
  • 主题:电子邮件的主题
  • 正文:电子邮件的内容

可选参数

以下是一些可选的参数:

  • CC:电子邮件的 CC(抄送)
  • BCC: 邮件的 BCC(密件抄送)
  • 附件:附加到电子邮件中的文件
发送电子邮件的步骤

步骤 1:建立表单

首先,我们需要在 HTML 中创建一个表单,以便用户可以输入他们的详细信息。

<form action="form-handler.php" method="post">
  <label for="name">姓名:</label>
  <input type="text" id="name" name="name" placeholder="请输入您的姓名" required>

  <label for="email">电子邮件:</label>
  <input type="email" id="email" name="email" placeholder="请输入您的电子邮件" required>

  <label for="message">留言:</label>
  <textarea id="message" name="message" placeholder="请输入您的留言" required></textarea>

  <button type="submit">提交</button>
</form>

表单将向名为 form-handler.php 的 PHP 文件提交。它包括输入字段 nameemailmessage

步骤 2:接收 POST 请求

当表单提交时,我们需要捕获 POST 请求。使用 PHP 可以通过以下方式接收:

if($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
}

上述代码将检查请求方法是否为 POST,并从表单中接收 nameemailmessage 输入。

步骤 3: 配置 PHPMailer

我们需要使用 PHPMailer 库来发送电子邮件。PHPMailer 是比较流行的 PHP 程序,可以发送电子邮件。您可以使用 Composer 安装 PHPMailer:

composer require phpmailer/phpmailer

步骤 4:发送电子邮件

接下来,我们需要获取邮件功能所需的参数,并使用 PHPMailer 发送电子邮件。以下是一个示例代码:

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

require 'vendor/autoload.php';

$mail = new PHPMailer(true);
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.gmail.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'youremail@gmail.com';
    $mail->Password = 'yourpassword';
    $mail->SMTPSecure = 'tls';
    $mail->Port = 587;

    // Catch the form data
    if($_SERVER['REQUEST_METHOD'] === 'POST') {
        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];
    }

    //Recipients
    $mail->setFrom($email, $name);
    $mail->addAddress('recipient@example.com', 'John Doe');

    //Content
    $mail->isHTML(true);
    $mail->Subject = 'New Message From ' . $name;
    $mail->Body    = $message;

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}

此代码将使用 PHPMailer 发送电子邮件。将参数替换为您的邮件信息(即:发送服务器、发件人地址、收件人地址和电子邮件正文)。如果电子邮件成功发送,您将看到“邮件已发送”的消息。

结论

使用 PHPMailer 库,可以轻松地从表单发送电子邮件。在本文中,我们涵盖了电子邮件的必要参数,详细描述了如何使用 PHPMailer 发送邮件,并提供了示例代码。