PHP郵件發送主要有兩種方法:使用PHP的內置函數mail()
和使用第三方庫PHPMailer。
mail()
:mail()
函數是PHP中用于發送郵件的內置函數。它不需要額外的庫支持,但功能相對有限。以下是使用mail()
函數發送郵件的基本步驟:
$to = "recipient@example.com";
$subject = "郵件主題";
$message = "郵件內容";
$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 "郵件發送成功";
} else {
echo "郵件發送失敗";
}
PHPMailer是一個功能強大的第三方郵件發送庫,支持多種郵件協議(如SMTP、sendmail、QQ郵箱等)和郵件服務提供商。以下是使用PHPMailer發送郵件的基本步驟:
首先,通過Composer安裝PHPMailer:
composer require phpmailer/phpmailer
然后,使用以下代碼發送郵件:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
// 服務器設置
$mail->isSMTP(); // 使用SMTP
$mail->Host = 'smtp.example.com'; // SMTP服務器地址
$mail->SMTPAuth = true; // 啟用SMTP認證
$mail->Username = 'your_username'; // SMTP用戶名
$mail->Password = 'your_password'; // SMTP密碼
$mail->SMTPSecure = 'tls'; // 啟用TLS加密
$mail->Port = 587; // SMTP端口
// 發件人和收件人
$mail->setFrom('sender@example.com', 'Sender Name');
$mail->addAddress('recipient@example.com', 'Recipient Name'); // 收件人郵箱
// 郵件內容
$mail->isHTML(true); // 設置郵件格式為HTML
$mail->Subject = '郵件主題';
$mail->Body = '郵件內容';
$mail->send();
echo '郵件發送成功';
} catch (Exception $e) {
echo "郵件發送失敗。Mailer Error: {$mail->ErrorInfo}";
}
?>
這兩種方法都可以實現PHP郵件發送,但PHPMailer提供了更多的功能和更好的兼容性,因此推薦使用PHPMailer。