溫馨提示×

centos中php如何配置SMTP郵件發送

小樊
44
2025-07-16 15:53:35
欄目: 編程語言

在CentOS中配置PHP以發送SMTP郵件,通常需要使用PHPMailer庫或者直接配置PHP的sendmail功能。以下是使用PHPMailer庫進行配置的步驟:

安裝PHPMailer

  1. 通過Composer安裝: 如果你的系統已經安裝了Composer,可以通過以下命令安裝PHPMailer:

    composer require phpmailer/phpmailer
    
  2. 手動下載并安裝: 如果沒有Composer,可以從GitHub下載PHPMailer庫:

    wget https://github.com/PHPMailer/PHPMailer/archive/refs/tags/v6.1.0.zip
    unzip v6.1.0.zip
    cd PHPMailer-6.1.0/
    composer install
    

配置PHPMailer

創建一個新的PHP文件(例如send_email.php),并添加以下代碼:

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

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    // 服務器設置
    $mail->SMTPDebug = 2;                                      // 啟用詳細調試輸出
    $mail->isSMTP();                                           // 使用SMTP
    $mail->Host       = 'smtp.example.com';                     // SMTP服務器地址
    $mail->SMTPAuth   = true;                                   // 啟用SMTP認證
    $mail->AuthType   = 'XOAUTH2';                              // 認證類型(根據你的SMTP服務提供商)
    $mail->Port       = 587;                                    // TCP端口
    $mail->SMTPSecure = 'tls';                                  // 啟用TLS加密

    // 認證信息
    $mail->OAuthUserEmail = 'your_email@example.com';            // 你的郵箱地址
    $mail->OAuthAppId     = 'your_app_id';                        // OAuth應用ID
    $mail->OAuthAppKey    = 'your_app_key';                       // OAuth應用密鑰
    $mail->OAuthRefreshToken = 'your_refresh_token';              // OAuth刷新令牌

    // 收件人
    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('recipient@example.com', 'Recipient Name');     // 添加收件人

    // 內容
    $mail->isHTML(true);                                        // 設置郵件格式為HTML
    $mail->Subject = '這里是郵件的主題';
    $mail->Body    = '這是一封測試郵件<br><b>這是HTML格式的郵件內容</b>';
    $mail->AltBody = '這是一封測試郵件\n這是純文本格式的郵件內容';

    $mail->send();
    echo '消息已發送';
} catch (Exception $e) {
    echo "消息無法發送. 錯誤信息: {$mail->ErrorInfo}";
}
?>

注意事項

  1. SMTP服務器地址和端口:根據你的SMTP服務提供商提供的信息進行配置。
  2. 認證信息:如果是使用OAuth認證,需要提供相應的應用ID、密鑰和刷新令牌。
  3. 安全性:確保你的SMTP服務器地址和端口是安全的,并且使用TLS加密。

配置sendmail(可選)

如果你更喜歡使用sendmail,可以安裝并配置sendmail

  1. 安裝sendmail

    sudo yum install sendmail sendmail-cf
    
  2. 配置sendmail: 編輯/etc/mail/sendmail.cf文件,添加SMTP服務器信息:

    define(`SMART_HOST', `smtp.example.com')dnl
    define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
    define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
    define(`confAUTH_OPTIONS', `A p')dnl
    TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    
  3. 重啟sendmail服務

    sudo systemctl restart sendmail
    

然后,你可以使用PHP的mail()函數發送郵件:

<?php
$to = 'recipient@example.com';
$subject = '這里是郵件的主題';
$message = '這是一封測試郵件';
$headers = 'From: from@example.com' . "\r\n" .
           'Reply-To: from@example.com' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

if (mail($to, $subject, $message, $headers)) {
    echo '消息已發送';
} else {
    echo '消息無法發送';
}
?>

請根據你的實際情況調整配置。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女