在 CentOS 系統上使用 Laravel 發送郵件失敗,可能是由于多種原因導致的。以下是一些建議和解決方案:
.env 文件中的郵件配置正確。例如:MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@example.com
MAIL_FROM_NAME="${APP_NAME}"
請根據您的郵件服務提供商提供的信息替換相應的值。
.env 文件中,設置以下值:QUEUE_CONNECTION=database
然后運行以下命令創建隊列表:
php artisan queue:table
php artisan migrate
接下來,啟動隊列監聽器:
php artisan queue:work
sudo firewall-cmd --permanent --zone=public --add-port=25/tcp
sudo firewall-cmd --permanent --zone=public --add-port=465/tcp
sudo firewall-cmd --permanent --zone=public --add-port=587/tcp
sudo firewall-cmd --reload
sestatus
如果 SELinux 是 “enforcing” 模式,您可以嘗試將其臨時設置為 “permissive” 模式以測試是否是 SELinux 導致的問題:
sudo setenforce 0
如果這解決了問題,您可以考慮調整 SELinux 策略以允許 Laravel 發送郵件,或者將其保持為 “permissive” 模式。
storage/logs 目錄下),以獲取有關郵件發送失敗的詳細信息。這可以幫助您診斷問題并找到解決方案。希望這些建議能幫助您解決在 CentOS 上使用 Laravel 發送郵件失敗的問題。如果問題仍然存在,請提供更多詳細信息,以便我們能夠更好地幫助您。