如何使用 PHP 代码从本地主机发送电子邮件

使用 PHP Mail()函数发送

您可以使用 PHP 内置的 mail() 函数从本地主机发送电子邮件。下面是一个如何使用它的示例:

<?php
$to = "[email protected]";
$subject = "Test email from localhost";
$message = "This is a test email sent from a localhost using PHP.";
$headers = "From: [email protected]" . "\r\n" .
    "CC: [email protected]";

mail($to, $subject, $message, $headers);
?>

请记住,要从 localhost 发送电子邮件,您需要在本地计算机上安装和配置邮件服务器。如果使用的是 Windows,可以使用 XAMPP 或 WAMP 等软件,它们都捆绑了邮件服务器,但在 Linux 或 MacOS 上,则需要安装和配置 postfix 或 exim 等邮件服务器。

此外,请注意有些托管服务提供商会阻止 25 端口的出站流量,因此您可能需要使用不同的端口或配置您的邮件服务器,使用不同的 SMTP 服务器发送电子邮件。

使用 PHPMailer 库发送

此外,您还可以使用诸如 PHPMailer 这样的库 库(如 PHPMailer)从本地主机发送电子邮件。它提供了更多高级功能,如支持通过 SMTP 发送电子邮件和附加文件。下面是一个如何使用它发送电子邮件的示例:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);
try {
    //Server settings
    $mail->SMTPDebug = 0;                      // Enable verbose debug output
    $mail->isSMTP();                                            // Send using SMTP
    $mail->Host       = 'smtp.example.com';                    // Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = 'username';                     // SMTP username
    $mail->Password   = 'password';                               // SMTP password
    $mail->SMTPSecure = 'ssl';         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
    $mail->Port       = 465;                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('[email protected]', 'Sender Name');
    $mail->addAddress('[email protected]', 'Recipient Name');     // Add a recipient

    // Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Test email from localhost';
    $mail->Body    = 'This is a test email sent from a localhost using PHPMailer.';

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

您需要设置邮件服务器的主机、用户名和密码。此外,还需要调整安全设置,使其与邮件服务器相匹配。

需要注意的是,mail() 函数和 PHPMailer 库各有优缺点。mail() 函数是一个内置的 PHP 函数,使用简单但功能有限,而 PHPMailer 是一个第三方库,提供更高级的功能,但需要更多的设置和配置。

使用 PHP 从本地主机发送电子邮件的前提条件

要使用 PHP 从本地主机发送电子邮件,您需要具备以下先决条件:

  1. 网络服务器: 您需要在本地计算机上安装并运行 Apache 或 Nginx 等网络服务器。
  2. PHP: 您需要安装 PHP 并进行配置,以便与网络服务器一起工作。
  3. 邮件服务器: 您需要在本地计算机上安装并配置邮件服务器。用于从本地主机发送电子邮件的常用邮件服务器有 Postfix、Exim 和 Sendmail。
  4. SMTP 配置: 您需要为邮件服务器设置正确的 SMTP 配置设置。这包括 SMTP 服务器的主机、端口、用户名和密码。
  5. 发送邮件的 PHP 扩展: 如果要使用 PHP 内置的 mail() 函数,则需要确保正确安装和配置了 PHP 邮件扩展。
  6. 防火墙设置:如果使用防火墙,可能需要将其配置为允许 25 端口的出站流量,这是发送电子邮件的标准端口。
  7. 如果使用 PHPMailer 这样的库,则需要在项目中包含库文件并正确配置。

还需要注意的是,有些托管服务提供商会阻止 25 端口的出站流量,因此您可能需要使用不同的端口或配置您的邮件服务器,使用不同的 SMTP 服务器发送电子邮件。

本条目发布于。属于软件分类,被贴了 标签。作者是

关于有个狸

2005年开始的一名站长,从事网站策划、运营,早期一批扎根阿里妈妈、Google Adsense的一员,目前司职前端与产品设计。

发表回复