source

응답 코드 220이 필요하지만 Larabel에서 메시지 ""과 함께 코드 ""가 수신되었습니다.

gigabyte 2022. 10. 29. 10:02
반응형

응답 코드 220이 필요하지만 Larabel에서 메시지 ""과 함께 코드 ""가 수신되었습니다.

저는 Laravel Mail 기능을 사용하여 메일을 보내고 있습니다.다음은 나의 것이다.app/config/mail.php파일 설정.

'driver' => 'sendmail',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => 'email@gmail.com', 'name' => 'MyName'),
'encryption' => 'tls',
'username' => 'myUsername',
'password' => "password",
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

컨트롤러 메일 방식

//Send Mail     
Mail::send('sendMail', array('key' => 'value'), function($message)
{
    $message->to('EmailId@hotmail.com', 'Sender Name')->subject('Welcome!');
});

코드를 실행하면 다음 오류 메시지가 나타납니다.

Swift_Transport예외.

응답 코드 220이 필요하지만 코드 ""와 메시지 ""이(가) 표시되었습니다.

작성했습니다.SendMail.php일부 데이터가 들어 있는 파일입니다.

이 오류 메시지를 해결하려면 어떻게 해야 하나요?

이 문제는 일반적으로 2단계 검증을 netable로 하지 않을 때 발생할 수 있습니다.gmail(여기에서 실행할 수 있는) 계정 전송에 사용 중인 계정email우선, 유효하게 합니다.two step verification2단계 검증을 활성화하기 위한 충분한 리소스를 찾을 수 있습니다.이 기능을 활성화한 후, 이 기능을 활성화하려면app password. 를 사용합니다.app password당신의 안에서.env파일. 이 작업을 마치면,.env파일은 다음과 같습니다.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=<<your email address>>
MAIL_PASSWORD=<<app password>>
MAIL_ENCRYPTION=tls

그리고 당신의mail.php

<?php

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.gmail.com'),
    'port' => env('MAIL_PORT', 587),
    'from' => ['address' => '<<your email>>', 'name' => '<<any name>>'],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
    'pretend' => false,

];

실행 후 실행php artisan config:cache그리고.php artisan config:clear확인 후 이메일이 작동합니다.

내 경우엔, 내가 세팅해야 했다.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465           <<<<<<<------------------------- (FOCUS THIS)
MAIL_USERNAME=<<your email address>>
MAIL_PASSWORD=<<app password>>

MAIL_ENCRYPTION= ssl    <<<<<<<------------------------- (FOCUS THIS)

일을 하기 위해서...도움이 될 수도 있어요나머지 코드는 @Sid가 말한 것과 동일합니다.

그리고 환경 파일과 app/config/mail을 모두 편집해야 한다고 생각합니다.php는 불필요합니다.한 가지 방법만 사용하세요.

@Zan 댓글에 따라 편집

TLS 보호를 실행해야 하는 경우 다음 설정을 사용하십시오.

MAIL_PORT=587
MAIL_ENCRYPTION= tls  

기타 gmail 설정에 대해서는 여기를 참조해 주세요.

내게 도움이 된 건...sendmail 매개 변수를 -bs에서 -t로 변경합니다.

'sendmail' => '/your/sendmail/path -t',

Swift Mailer를 사용하는 경우: $transport 변수가 다음과 같은지 확인하십시오.테스트를 수행한 결과에 따르면 이 오류는 ssl 및 포트 설정 오류로 인해 발생합니다.참고: 전송 변수에 'ssl' 또는 'sl'을 포함해야 합니다.

코드 예:

// Create the Transport
$transport = (new Swift_SmtpTransport('smtp.gmail.com', 465, 'ssl'))
  ->setUsername(you@example.com)
  ->setPassword(password)
;

// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);

// Create a message
$message = (new Swift_Message('News Letter Subscription'))
  ->setFrom(['app@example.com' => 'A Name'])
  ->setTo(['someone@example.com' => 'A Name'])
  ->setBody('your message body')
  ;

// Send the message
$result = $mailer->send($message);

나도 같은 문제에 직면해 있었다.구글과 StackOverflow에 대해 너무 많이 조사한 후.해결책은 매우 간단했다.

우선 이렇게 환경을 설정해야 합니다.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=example@gmail.com
MAIL_PASSWORD=example44
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=example@gmail.com

당신은 당신의 Gmail 주소와 비밀번호를 변경해야 합니다.

이제 이 링크(https://myaccount.google.com/lesssecureapps)를 클릭하여 보안이 낮은 앱을 사용해야 합니다.

나에게 문제는 포트였다.처음에 포트 465를 잘못 사용했습니다.이 포트는SSL하지만 아니다TLS그래서 중요한 건 포트를 587로 바꾸는 거였어요.

언급URL : https://stackoverflow.com/questions/32693528/expected-response-code-220-but-got-code-with-message-in-laravel

반응형