2014-12-18 3 views
3

나는 Yii 2을 사용 중이며 base mailer class에서 메일러를 사용하고 있으며 대부분 잘 작동하지만 때로는 전송에 실패합니다. . 왜 Yii 2의 기본 메일러 클래스 내에서 메일을 보내지 못하게 된 이유

// Let's start composing the message 
$mail = Yii::$app->mailer->compose($view_data, $view_params); 

//......... 

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

때때로 $send false하지만 나는 그것이 거짓 이유를 알아낼 방법을 잘 모르겠어요 그래서 내 코드는 같다? 오류가 발생하여 오류가 발생하는 방법이 있습니까?

+1

예! 체크 로그;) –

+0

@AresDraguna - 나는 내 자신의 로그에 전달할 수 있도록 오류를 얻고 싶습니다. – Brett

+0

Yii2는 정말 좋은 로그 맨과 함께 제공됩니다. 나는 최고 수준의 통나무를 의미한다. 디버깅 모드가 런타임/로그 또는/debug에있을 경우 브라우저에서 볼 수 있습니다. 별도의 로그가 필요하지 않지만이를 고집하지 않으면 미안하지만 ... 모르겠다. 그걸하는 법 ... –

답변

3

여러 수신자 메시지를 보내는 경우 오류가 있는지 확인해야합니다. 예 : http://swiftmailer.org/docs/sending.html#getting-failures-by-reference. :

if (Yii::$app->mailer->getSwiftMailer()->send($message->getSwiftMessage(), $failures))  
{ 
    // do what you want with $failures var 
} 

그리고 당신이 정말로 당신의 YII 응용 프로그램에서 SMTP 오류를 처리하려는 경우, 당신은 swiftmailer 로거 플러그인을 사용한다 : http://swiftmailer.org/docs/plugins.html#logger-plugin

PS : 처음 나는 YII을 확인 할 및 SMTP 로그는 오류의 종류를 볼 수 발생합니다 ...

+0

고마워. 그래서 그 로거를 사용하고 싶다면 아마 Yii swiftmailer 클래스를 확장해야 할 것 같습니까?또한, Yii의 로그에 관해서는 - 내 오류 로그의 실패에 대해 아무것도 얻지 못하고, smtp 로그를 확인할 위치가 확실하지 않습니다. 내 로컬 env에있어 문제가 시간 초과 문제 일 수 있습니다 의심 스럽지만 메일을 보내는 데 몇 초가 걸리는 것으로 나타났습니다. – Brett

+0

Yii 메일러를 확장하거나 swiftmailer를 직접 사용할 수 있습니다. – soju

-1

덧글을 쓸 수는 없지만 Yii의 설정에 대한 자세한 정보가 필요합니다. 여기에 기본 메일 프로그램의 코드베이스에서 찾고

.... https://github.com/yiisoft/yii2/blob/master/framework/mail/BaseMailer.php

당신이 볼 수있는 진정한 useFileTransport = 다음은 파일 시스템에 메시지를 저장하려고하면 그. 그렇지 않으면 추상 메소드를 호출합니다.

어떤 타사 메일러를 사용하고 있는지 알아야합니다.

+0

아니요, fileTransport를 사용하지 않습니다. 내가 아는 바로는 기본 메일러는'SwiftMailer'를 사용합니다. – Brett

+0

문제 설명 ("하지만 때로는 ..... 전송하지 못했습니다.") 아주 명백한 filetransport 여기에 문제가되지 않습니다 –