📜  提交表单时发送电子邮件 php (1)

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

提交表单时发送电子邮件 PHP

如果您的网站需要让用户填写表单并向管理员发送电子邮件,那么本指南将帮助您实现该功能。我们将使用PHP来完成此操作。

1. 安装邮件发送库

首先,我们需要安装 PHPMailer 这个库,它是一个发送邮件的PHP类库。您可以使用 Composer 来快速安装,也可以手动下载并导入到项目中。

安装方式一:使用 Composer 安装

在您的项目中打开终端或命令行提示符,输入以下命令进行安装:

composer require phpmailer/phpmailer
安装方式二:手动下载
  1. 访问 https://github.com/PHPMailer/PHPMailer/releases

  2. 下载最新的 PHPMailer-x.y.z.zip 文件,并解压到您的项目目录中

  3. 在您的代码中引入 PHPMailerAutoload.php 文件,例如:

    require_once '/path/to/PHPMailerAutoload.php';
    
2. 编写 PHP 发送邮件代码

以下是一个简单的用 PHPMailer 发送邮件的示例代码:

<?php
require_once '/path/to/PHPMailerAutoload.php';

// 创建 PHPMailer 实例
$mail = new PHPMailer;

// 配置邮件服务器信息
$mail->isSMTP();                                      // 使用 SMTP 方式发送邮件
$mail->Host = 'smtp.example.com';                     // SMTP 服务器地址
$mail->SMTPAuth = true;                               // 开启 SMTP 认证
$mail->Username = 'your_email@example.com';           // SMTP 登录账号
$mail->Password = 'your_email_password';              // SMTP 登录密码
$mail->SMTPSecure = 'tls';                            // SMTP 安全协议(tls 或 ssl)
$mail->Port = 587;                                    // SMTP 服务器端口号

// 配置发送者和接收者信息
$mail->setFrom('your_email@example.com', 'Your Name');    // 发件人邮箱和姓名
$mail->addAddress('recipient@example.com', 'Recipient Name');   // 收件人邮箱和姓名

// 添加附件(可选)
$mail->addAttachment('/path/to/file.jpg', 'new-name.jpg'); // 附件文件路径和新文件名

// 配置邮件主题和内容
$mail->Subject = '邮件主题';
$mail->isHTML(true);                                 // 是否使用 HTML 格式
$mail->Body = '<b>邮件内容HTML部分</b>';           // 邮件主体HTML部分
$mail->AltBody = '邮件内容非HTML部分';             // 邮件主体纯文本部分

// 发送邮件
if(!$mail->send()) {
    echo 'Mailer Error: '.$mail->ErrorInfo;
} else {
    echo 'Message sent!';
}
?>
3. 处理表单提交并发送邮件

现在,我们了解了如何发送邮件,下面我们将把表单提交和邮件发送结合起来。

假设我们有一个简单的联系表单,表单中包含姓名、电子邮件和留言。当用户填写完表单并单击“提交”按钮时,应该将表单数据通过电子邮件发送给网站管理员。

以下是处理表单提交并发送邮件的代码:

<?php
/* 处理表单提交 */
if (!empty($_POST)) {
    /* 接收表单数据 */
    $name = htmlspecialchars($_POST['name']);
    $email = htmlspecialchars($_POST['email']);
    $message = htmlspecialchars($_POST['message']);

    /* 发送邮件 */
    require_once '/path/to/PHPMailerAutoload.php';
    $mail = new PHPMailer;

    // 配置邮件服务器信息
    $mail->isSMTP();                        // 使用 SMTP 方式发送邮件
    $mail->Host = 'smtp.example.com';       // SMTP 服务器地址
    $mail->SMTPAuth = true;                 // 开启 SMTP 认证
    $mail->Username = 'your_email@example.com';       // SMTP 登录账号
    $mail->Password = 'your_email_password';          // SMTP 登录密码
    $mail->SMTPSecure = 'tls';              // SMTP 安全协议(tls 或 ssl)
    $mail->Port = 587;                      // SMTP 服务器端口号

    // 配置发送者和接收者信息
    $mail->setFrom($email, $name);                // 发件人邮箱和姓名
    $mail->addAddress('admin@example.com', 'Administrator');  // 收件人邮箱和姓名

    // 配置邮件主题和内容
    $mail->Subject = 'New Message From Contact Form';
    $mail->isHTML(true);                     // 使用 HTML 格式
    $mail->Body = "Name: $name<br>Email: $email<br>Message: $message";  // 邮件主体HTML部分

    if(!$mail->send()) {
        echo 'Mailer Error: '.$mail->ErrorInfo;
    } else {
        echo 'Message sent!';
    }
}
?>

<!-- HTML表单代码 -->
<form method="post" action="">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required>

    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required>

    <label for="message">Message:</label>
    <textarea id="message" name="message" required></textarea>

    <button type="submit">Submit</button>
</form>
结论

本指南涵盖了如何使用 PHPMailer 发送电子邮件,并演示了如何将表单处理和电子邮件发送结合起来。这些示例代码可为您的网站提供完整的发送邮件功能。

Markdown 返回值:

# 提交表单时发送电子邮件 PHP

如果您的网站需要让用户填写表单并向管理员发送电子邮件,那么本指南将帮助您实现该功能。我们将使用PHP来完成此操作。

## 1. 安装邮件发送库

首先,我们需要安装 `PHPMailer` 这个库,它是一个发送邮件的PHP类库。您可以使用 Composer 来快速安装,也可以手动下载并导入到项目中。

### 安装方式一:使用 Composer 安装

在您的项目中打开终端或命令行提示符,输入以下命令进行安装:

composer require phpmailer/phpmailer


### 安装方式二:手动下载

1. 访问 [https://github.com/PHPMailer/PHPMailer/releases](https://github.com/PHPMailer/PHPMailer/releases)
2. 下载最新的 `PHPMailer-x.y.z.zip` 文件,并解压到您的项目目录中
3. 在您的代码中引入 `PHPMailerAutoload.php` 文件,例如:

   ```php
   require_once '/path/to/PHPMailerAutoload.php';
   ```

## 2. 编写 PHP 发送邮件代码

以下是一个简单的用 PHPMailer 发送邮件的示例代码:

```php
<?php
require_once '/path/to/PHPMailerAutoload.php';

// 创建 PHPMailer 实例
$mail = new PHPMailer;

// 配置邮件服务器信息
$mail->isSMTP();                                      // 使用 SMTP 方式发送邮件
$mail->Host = 'smtp.example.com';                     // SMTP 服务器地址
$mail->SMTPAuth = true;                               // 开启 SMTP 认证
$mail->Username = 'your_email@example.com';           // SMTP 登录账号
$mail->Password = 'your_email_password';              // SMTP 登录密码
$mail->SMTPSecure = 'tls';                            // SMTP 安全协议(tls 或 ssl)
$mail->Port = 587;                                    // SMTP 服务器端口号

// 配置发送者和接收者信息
$mail->setFrom('your_email@example.com', 'Your Name');    // 发件人邮箱和姓名
$mail->addAddress('recipient@example.com', 'Recipient Name');   // 收件人邮箱和姓名

// 添加附件(可选)
$mail->addAttachment('/path/to/file.jpg', 'new-name.jpg'); // 附件文件路径和新文件名

// 配置邮件主题和内容
$mail->Subject = '邮件主题';
$mail->isHTML(true);                                 // 是否使用 HTML 格式
$mail->Body = '<b>邮件内容HTML部分</b>';           // 邮件主体HTML部分
$mail->AltBody = '邮件内容非HTML部分';             // 邮件主体纯文本部分

// 发送邮件
if(!$mail->send()) {
    echo 'Mailer Error: '.$mail->ErrorInfo;
} else {
    echo 'Message sent!';
}
?>
```

## 3. 处理表单提交并发送邮件

现在,我们了解了如何发送邮件,下面我们将把表单提交和邮件发送结合起来。

假设我们有一个简单的联系表单,表单中包含姓名、电子邮件和留言。当用户填写完表单并单击“提交”按钮时,应该将表单数据通过电子邮件发送给网站管理员。

以下是处理表单提交并发送邮件的代码:

```php
<?php
/* 处理表单提交 */
if (!empty($_POST)) {
    /* 接收表单数据 */
    $name = htmlspecialchars($_POST['name']);
    $email = htmlspecialchars($_POST['email']);
    $message = htmlspecialchars($_POST['message']);

    /* 发送邮件 */
    require_once '/path/to/PHPMailerAutoload.php';
    $mail = new PHPMailer;

    // 配置邮件服务器信息
    $mail->isSMTP();                        // 使用 SMTP 方式发送邮件
    $mail->Host = 'smtp.example.com';       // SMTP 服务器地址
    $mail->SMTPAuth = true;                 // 开启 SMTP 认证
    $mail->Username = 'your_email@example.com';       // SMTP 登录账号
    $mail->Password = 'your_email_password';          // SMTP 登录密码
    $mail->SMTPSecure = 'tls';              // SMTP 安全协议(tls 或 ssl)
    $mail->Port = 587;                      // SMTP 服务器端口号

    // 配置发送者和接收者信息
    $mail->setFrom($email, $name);                // 发件人邮箱和姓名
    $mail->addAddress('admin@example.com', 'Administrator');  // 收件人邮箱和姓名

    // 配置邮件主题和内容
    $mail->Subject = 'New Message From Contact Form';
    $mail->isHTML(true);                     // 使用 HTML 格式
    $mail->Body = "Name: $name<br>Email: $email<br>Message: $message";  // 邮件主体HTML部分

    if(!$mail->send()) {
        echo 'Mailer Error: '.$mail->ErrorInfo;
    } else {
        echo 'Message sent!';
    }
}
?>

<!-- HTML表单代码 -->
<form method="post" action="">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required>

    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required>

    <label for="message">Message:</label>
    <textarea id="message" name="message" required></textarea>

    <button type="submit">Submit</button>
</form>
```

## 结论

本指南涵盖了如何使用 PHPMailer 发送电子邮件,并演示了如何将表单处理和电子邮件发送结合起来。这些示例代码可为您的网站提供完整的发送邮件功能。