在 PHP 中使用邮件表单发送电子邮件

本教程将演示安装 sendmail 库并通过 PHP 邮件表单发送电子邮件。

安装 sendmail 以在本地服务器上从 PHP 发送电子邮件

PHP 有一个内置函数 mail() 来发送电子邮件。但是,在你安装它的库之前,此功能将不起作用。

要安装 sendmail,请按照以下步骤操作。

  • 下载并提取 sendmail

    从这里下载 sendmail。然后将 zip 文件解压缩到 C:\sendmail\

  • 配置 sendmail.ini

    现在,从主 sendmail 文件夹中打开 sendmail.ini。搜索并设置如下配置。

    smtp_server=smtp.gmail.com
    smtp_port=587
    auth_username=The_email_from@gmail.com
    auth_password=Email Password
    force_sender=your_address@gmail.com
    

    此设置用于通过 Gmail 发送电子邮件,你也可以从其他人或你的服务器发送电子邮件。

    需要在这些参数中进行设置。auth_usernameauth_password 将是你要发送电子邮件的电子邮件和密码。

  • 配置 php.ini

    要进行配置,请打开 php.ini 文件并搜索 sendmail_path。然后将此参数设置为 C:\sendmail\sendmail.exe -t

    ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
    ; http://php.net/sendmail-path
    sendmail_path ="C:\sendmail\sendmail.exe -t"
    

    重新启动本地服务器,就完成了。

  • 测试发送电子邮件。

    你可以发送一封带有简单的一行代码的电子邮件进行测试,如下所示。

    <?php
    mail("example@hotmail.com","Test subject", "This is a test Email");
    ?>

    输出:

    在 PHP 中使用邮件表单发送电子邮件

    如你所见,输出是发送到指定地址的邮件。

在 PHP 中使用邮件表单创建和发送电子邮件

首先,你必须创建一个 HTML 表单以将电子邮件数据发送到 PHP 代码。使用 mail() 函数使用该数据发送电子邮件。

例子:

<?php
if(isset($_POST['submit']))
{
    $email_address = $_POST['email_address'];
    $subject = "This is a test email";
    $email_message = "The following message is sent in email:" . "\n\n" . $_POST['email_message'];
    mail($email_address,$subject,$email_message);
    echo "Email sent to ".$email_address;
    // You can also use header('Location: thank_you.php'); to redirect to another page.
}
?>
<!DOCTYPE html>
<head>
    <title>PHP Mail Form</title>
</head>
<body>
    <form action="" method="post">
    Email: <input type= "email" name= "email_address"><br>
    Message:<br> <textarea rows= "10" name= "email_message" cols= "50"> </textarea> <br>
    <input type= "submit" name= "submit" value= "Send Email">
    </form>
</body>
</html>

输出:

Email sent to example@outlook.com

在 PHP 中使用邮件表单发送电子邮件

上面的代码生成了一个带有 emailmessage 框的表单。然后,代码将消息框中写入的内容发送到电子邮件字段中给出的电子邮件地址。

姓名、姓氏和日期等其他字段也可以添加到表单中,以发送包含更多信息的电子邮件。