📜  PHP-使用PHP发送电子邮件(1)

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

PHP-使用PHP发送电子邮件

在Web应用程序开发上,电子邮件是十分常见的功能。作为一名程序员,了解如何使用PHP发送电子邮件是必须的技能之一。本文将教你如何使用PHP发送电子邮件,包括如何通过SMTP服务器发送电子邮件。

准备

在这之前,你需要满足以下条件:

  • 基本的PHP语法知识
  • 一些基本的Web开发知识
  • 一个SMTP服务器地址和允许发送电子邮件的账户
发送邮件

PHP提供了一个mail()函数,可以简单地将电子邮件发送到指定的收件人。下面是一个示例:

$to = 'receiver@example.com';
$subject = 'Test email';
$message = 'Hello! This is a test email.';
$headers = 'From: sender@example.com' . "\r\n" .
    'Reply-To: sender@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

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

上面的示例中,我们将电子邮件发送给receiver@example.com,主题为Test email,内容为Hello! This is a test email.。邮件的发送者是sender@example.com

添加收件人、抄送和密送

如果你需要将电子邮件发送给多个收件人、抄送和密送,则可以使用收件人、抄送和密送头。示例如下:

$to = 'receiver1@example.com, receiver2@example.com';
$cc = 'cc1@example.com, cc2@example.com';
$bcc = 'bcc1@example.com, bcc2@example.com';
$subject = 'Test email';
$message = 'Hello! This is a test email.';
$headers = 'From: sender@example.com' . "\r\n" .
    'Reply-To: sender@example.com' . "\r\n" .
    'Cc: ' . $cc . "\r\n" .
    'Bcc: ' . $bcc . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

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

上面的示例中,我们将电子邮件发送给receiver1@example.comreceiver2@example.com。同时,我们将抄送邮件发送给cc1@example.comcc2@example.com,并将密送邮件发送给bcc1@example.combcc2@example.com

使用SMTP服务器发送邮件

虽然mail()函数可以方便地发送电子邮件,但是它有一个弱点:如果你的邮件服务器在黑名单中,或者邮件服务被识别为垃圾邮件,则你的邮件可能会被拒绝或被标记为垃圾邮件。此时,可以使用SMTP服务器来发送邮件。

PHPMailer是一个流行的PHP库,可以帮助我们方便地使用SMTP服务器发送电子邮件。下面是一个示例:

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

// composer自动加载PHPMailer库
require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    // SMTP服务器设置
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;
    $mail->isSMTP();
    $mail->Host = 'smtp.example.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'sender@example.com';
    $mail->Password = 'password';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 587;

    // 发件人、收件人信息
    $mail->setFrom('sender@example.com', 'Sender Name');
    $mail->addAddress('receiver@example.com', 'Receiver Name');

    // 发送邮件
    $mail->isHTML(false);
    $mail->Subject = 'Test email';
    $mail->Body = 'Hello! This is a test email.';

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

上面的示例中,我们使用PHPMailer库来发送邮件。我们需要设置SMTP服务器的信息、发件人、收件人信息,以及邮件的主题和内容。在上面的例子中,我们使用了TLS加密来保护邮件传输的安全性。

总结

以上是使用PHP发送电子邮件的基本知识。你可以使用PHP自带的mail()函数来发送电子邮件,也可以使用PHPMailer库来使用SMTP服务器发送邮件。无论哪种方式,记得保持简洁,避免成为垃圾邮件。