Laravel 发送电子邮件不起作用
Laravel sending E-Mail does not work
我正在尝试使用 laravel 发送电子邮件,但不知何故它不起作用我收到以下消息:
Swift_TransportException in AbstractSmtpTransport.php line 383:
Expected response code 220 but got code "421", with message "421
Cannot connect to SMTP server 52.20.34.166 (52.20.34.166:587), connect
error 10060 "
我的 .env 文件如下所示:
APP_ENV=local
APP_DEBUG=true
APP_KEY=rFhHPTfEg4nxYEeqVzoQWX70a0AA5uw3
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=587
MAIL_USERNAME=test@test.de
MAIL_PASSWORD=123456789
MAIL_ENCRYPTION=tls
我的 mail.php 看起来像这样:
<?php
return [
'driver' => env('MAIL_DRIVER', 'mail'),
'host' => env('MAIL_HOST', ''),
'port' => env('MAIL_PORT', 587),
'from' => ['address' => 'test@test.de', 'name' => 'test'],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
];
在我的 Controlller 内部,我这样称呼它:
# Send Mail
Mail::send('emails.email', $data, function($message) use ($data)
{
$message->from($data['email'] , $data['title']);
$message->to('test@test.de', 'my name')->subject('contact request');
});
我找不到我的代码中的错误。感谢您的帮助。
我注意到的另一件事是 mailtrap
为您提供了特定的 username
和 password
。您是否尝试使用它们而不是 test@test.de;123456789
?
您需要在 .env
上输入有效的电子邮件,找到您的个人邮件配置并重试。
也许您想在 config/mail.php
上更改配置 from
以显示您的姓名和邮件。
我这么说是因为我看到您有主机 mailtrap.io
,但是 test@test.de
不是该主机的有效用户。
也许 MAIL_PORT
的 587 不是正确的值。
你需要使用这个命令:
php artisan config:cache
它在您更改 env 文件并键入此命令之前适用于它并 运行 它。它会起作用。
我正在尝试使用 laravel 发送电子邮件,但不知何故它不起作用我收到以下消息:
Swift_TransportException in AbstractSmtpTransport.php line 383: Expected response code 220 but got code "421", with message "421 Cannot connect to SMTP server 52.20.34.166 (52.20.34.166:587), connect error 10060 "
我的 .env 文件如下所示:
APP_ENV=local
APP_DEBUG=true
APP_KEY=rFhHPTfEg4nxYEeqVzoQWX70a0AA5uw3
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=587
MAIL_USERNAME=test@test.de
MAIL_PASSWORD=123456789
MAIL_ENCRYPTION=tls
我的 mail.php 看起来像这样:
<?php
return [
'driver' => env('MAIL_DRIVER', 'mail'),
'host' => env('MAIL_HOST', ''),
'port' => env('MAIL_PORT', 587),
'from' => ['address' => 'test@test.de', 'name' => 'test'],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
];
在我的 Controlller 内部,我这样称呼它:
# Send Mail
Mail::send('emails.email', $data, function($message) use ($data)
{
$message->from($data['email'] , $data['title']);
$message->to('test@test.de', 'my name')->subject('contact request');
});
我找不到我的代码中的错误。感谢您的帮助。
我注意到的另一件事是 mailtrap
为您提供了特定的 username
和 password
。您是否尝试使用它们而不是 test@test.de;123456789
?
您需要在 .env
上输入有效的电子邮件,找到您的个人邮件配置并重试。
也许您想在 config/mail.php
上更改配置 from
以显示您的姓名和邮件。
我这么说是因为我看到您有主机 mailtrap.io
,但是 test@test.de
不是该主机的有效用户。
也许 MAIL_PORT
的 587 不是正确的值。
你需要使用这个命令:
php artisan config:cache
它在您更改 env 文件并键入此命令之前适用于它并 运行 它。它会起作用。