URL을 입력하여 지정된 사용자에게 이메일을 보내려고하는데 다음과 같은 오류가 발생합니다.
AbstractSmtpTransport.php 383 줄의 Swift_TransportException : 응답 코드 250이 예상되었지만 메시지 “530”과 함께 코드 “530”이 표시됨 5.7.1 인증 필요
지금까지는 Gmail에서 작동하도록 노력하고 있습니다. 이 기능을 작동 시키려면 어떻게해야합니까?
이것은 지금까지 내가 가진 것입니다 : mail.php
<?php
return [
'driver' => env('MAIL_DRIVER',' smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' =>"MyUsername@gmail.com" , 'name' => "example"],
'encryption' => 'tls',
'username' => env('MyUsername@gmail.com'),
'password' => env('MyPassword'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
];
이것이 내가 경로에 가지고있는 것입니다 :
Route::get('test', function() {
Mail::send('Email.test', [], function ($message) {
$message->to('example@gmail.com', 'HisName')->subject('Welcome!');
});
});
이것이 내 컨트롤러에있는 것입니다.
class MailController extends Controller
{
public function Sending_Email()
{
$this->call('GET','Email.test');
return View('Email.test');
}
}
그리고 이것은 내 .env 파일에 있습니다.
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=MyUsername@gmail.com
MAIL_PASSWORD=MyPassword
답변
나는 그것이 당신을 위해 지금 @ Vantheman6 작동한다는 것을 알고 있지만 이것이 다른 누군가와 같은 경우 나를 위해 일한 것입니다.
사용중인 메일 서비스의 세부 정보를 내 .env 파일에 추가했습니다. 다음 세부 사항을 확인하십시오
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=MyUsername@gmail.com
MAIL_PASSWORD=MyPassword
.env 파일의 내용이 정확합니다.
참고 : .env 파일을 편집 한 후 서버에 다시 시작하여 새 데이터를 입력하도록하십시오.
서버를 다시 시작하지 않으면 .env 파일은이 오류의 원인이 될 수있는 변경 사항을 적용하더라도 이전 메일 데이터를 앱에 계속 제공합니다.
답변
내 .env 파일 구성은 laravel 5.1의 경우와 같습니다
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=example@gmail.com
MAIL_PASSWORD=****************
MAIL_ENCRYPTION=tls
여기서 가장 중요한 것은 Gmail 응용 프로그램 특정 비밀번호 (16 자리)를 생성했다는 것입니다.
구성에 대한 운이 없기 때문에 한 가지 더 밝힐 필요가 있습니다. 즉, .env 파일을 변경할 때마다이 명령을 실행해야합니다.
php artisan config:cache
이 명령이 없으면 laravel이 캐시에서 이전 설정을 실행하기 때문에 가장 중요합니다. 알아내는 데 10 시간 이상이 걸렸습니다.
답변
구성 파일의 사용자 이름과 비밀번호가 잘못 설정되어 인증 오류가 발생했습니다.
이것을 변경하십시오 :
'username' => env('MyUsername@gmail.com'),
'password' => env('MyPassword'),
이에:
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
이 env
방법은 .env 파일을 확인합니다. .env 파일에서 이들을 호출 MAIL_USERNAME
하므로 env
메소드 에 전달해야합니다 .
하나의 문제점 해결 팁 : 실제 생성 된 구성을dd(Config::get('mail'));
볼 수 있도록 추가 하십시오 . 이를 통해 이와 같은 문제를 발견하고 Laravel이 시도하고 사용할 정보를 정확히 파악할 수 있습니다. 따라서 테스트 경로에서 일시적으로 중지하여 가지고있는 것을 검사 할 수 있습니다.
Route::get('test', function()
{
dd(Config::get('mail'));
});
답변
캐시를 지우면 문제가 해결됩니다.
php artisan config:cache
답변
마침내 나는 얻었다! 공유하기 위해 .env보다 더 많은 구성이 있습니다.
이것은 .env입니다
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=UserName@gmail.com
MAIL_PASSWORD=********
MAIL_ENCRYPTION=tls
config / mail.php도 작동하려면 주소와 이름을 입력해야합니다.
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' => 'Username@gmail.com' , 'name' => 'YourName' ],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
답변
동일한 문제가 발생하여 온라인으로 모든 것을 시도해도 작동하지 않으면 잘못된 정보를 보내는 구성 캐시 파일 일 수 있습니다. bootstrap / cache / config.php에서 찾을 수 있습니다. 신임 정보가 올바른지 확인하십시오. 알아내는 데 일주일이 걸렸습니다. 이것이 언젠가 누군가를 도울 수 있기를 바랍니다.
답변
개발 목적으로 https://mailtrap.io/ 는 .env 파일에 추가해야하는 모든 설정을 제공합니다. 예 :
Host: mailtrap.io
Port: 25 or 465 or 2525
Username: cb1d1475bc6cce
Password: 7a330479c15f99
Auth: PLAIN, LOGIN and CRAM-MD5
TLS: Optional
그렇지 않으면 구현을 위해 메일에서 .env 파일에 smtp 자격 증명을 추가 할 수 있습니다 (예 : gmail n all).
또한 서버를 다시 시작하십시오