در این مقاله به یکی از خطاهای مرسوم در استفاده از بخش ارسال ایمیل در پلتفرم لاراول میپردازیم.
فرض بر این است که شما اطلاعات Mail Server را در فایل .env وارد کرده اید و اینک تست شما در هنگام ارسال ایمیل با خطای زیر همراه است:
Swift_TransportException
Connection could not be established with host HOSTNAME :stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name or service not known
موضوع خطا:
در این خطا اعلام شده که نام هاست یا MAIL_HOST وارد شده نادرست است یا قابل شناسایی و در دسترس نیست. اما شما اطمینان دارید که آدرس وارد شده در فایل .env به عنوان MAIL_HOST یا SMTP Server درست است!
علت خطا و نحوه رفع مشکل:
چنانچه از نام کاربری و رمز عبور اطمینان دارید علت خطا در این است که MAIL_HOST یا SMTP Server از فایل زیر در لاراول شما خوانده می شود:
config/mail.php
بنابراین لازم است علاوه بر .env، اطلاعات ایمیل را در فایل mail.php نیز وارد کنید.
مثال برای .env:
MAIL_MAILER=smtp
MAIL_HOST=mail.yourdomain.com
MAIL_PORT=25
MAIL_USERNAME=info@yourdomain.com
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=info@yourdomain.com
MAIL_FROM_NAME="${APP_NAME}"
مثال برای فایل mail.php:
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'mail.yourdomain.com'),
'port' => env('MAIL_PORT', 465),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('info@yourdomain.com'),
'password' => env('yourpassword'),
'timeout' => null,
'auth_mode' => null,
],
حال بایستی cache لاراول را با فرمان زیر خالی کنید تا تغییرات مشاهده شوند:
/usr/bin/php /home/USERNAME/public_html/artisan config:cache
کار تمام شد! حال میتوانید بدون دریافت خطا اقدام به ارسال ایمیل کنید.