在PHP中,发送邮件可以通过多种方式实现,包括使用内置的`mail()`函数、通过`qmail`邮件系统(如果服务器已配置),以及使用第三方库如`PHPMailer`。下面我将分别展示这三种方式的简单示例。
### 1. 使用PHP内置的`mail()`函数
<?php
$to = "recipient@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();
if (mail($to, $subject, $message, $headers)) {
echo "Email sent successfully";
} else {
echo "Email sending failed";
}
?>
### 2. 使用`qmail`(通常通过`sendmail`接口)
如果你的服务器配置了`qmail`,并且`sendmail`路径被正确设置(通常通过`php.ini`中的`sendmail_path`),你可以像使用`mail()`函数一样发送邮件,因为`mail()`函数在底层可能会调用`sendmail`。但是,如果你需要直接调用`sendmail`命令(虽然这在PHP中不常见),你可以使用`exec()`或`shell_exec()`函数,但出于安全考虑,这通常不推荐。
### 3. 使用`PHPMailer`类
首先,你需要通过Composer或手动下载的方式将`PHPMailer`库包含到你的项目中。
<?php
require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
$mail = new PHPMailer\PHPMailer\PHPMailer();
try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'your-email@example.com'; // SMTP username
$mail->Password = 'your-password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Recipients
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('recipient@example.com', 'Joe User'); // Add a recipient
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}
?>
请注意,`PHPMailer`示例中的服务器设置(如SMTP主机、端口、用户名和密码)需要根据你的邮件服务提供商进行相应调整。此外,`PHPMailer`提供了丰富的配置选项和错误处理机制,可以帮助你更好地控制邮件发送过程。