2014-11-05 3 views
0

신속 메일러를위한 폴백 (fallback)을 설정하고 폴백 코드가 작동하는지 테스트하려면 어떻게해야합니까? 나는이 기본 코드를 하우투에서 얻었다.PHP의 Swift Mailer 프레임 워크에서 폴백을 설정하는 방법

$transport = Swift_SmtpTransport::newInstance(SMTP_HOST, SMTP_PORT, 'tls') 
->setUsername(SMTP_USERNAME) 
->setPassword(SMTP_PASSWORD) 
; 

$mailer = Swift_Mailer::newInstance($transport); 
$message = Swift_Message::newInstance('S5_Dagsrapport_' . $dato1) 
->setFrom(array($from => 'S5')) 
->setTo(array($to => $navn)) 
->setBody($body, 'text/html') 
->addPart($body, 'text/html') 
->attach(Swift_Attachment::newInstance($attachment, 's5_dagsreport_' . $dato1 . '.xls',   'application/xls')) 
; 
// Send the message 
$mailer->send($message); 

내가 사용하는 경우

가 전송을 보여줍니다
if(
$mailer->send($message)){ 
echo "Sent\n"; 
}else{ 
echo "Failed\n"; 
} 

,하지만 난 매개 변수에 잘못된 정보를 넣어 경우, 그것은 실패 표시되지 않습니다. 나는 다른 해결책이

Swift_Transport_FailoverTransport 

를 사용하는 것을 읽고있다하지만 난 그것에 온라인 예제를 찾을 수 없습니다. Swift_mailer의 대체를 만들 수있는 쉬운 방법을 무엇

,

답변

1

나는 Swift_Transport_FailoverTransport이 확장하는 클래스에서 알 수 있습니다.

https://github.com/swiftmailer/swiftmailer/blob/master/lib/classes/Swift/Transport/LoadBalancedTransport.php

setTransports라는 메소드를 포함합니다. 거기에서 하나가 실패 할 때 사용할 전송을 설정할 수 있습니다. 체인 클래스와 약간 비슷합니다. 클래스 자체는 다른 여러 전송을 포함하는 Swift_Transport의 인스턴스입니다.

메일 서버에 연결하는 데 사용할 전송을 만듭니다. 그런 다음 Swift_Transport_FailoverTransport의 인스턴스에 추가하십시오. 그런 다음 해당 인스턴스를 메일러 전송으로 사용하십시오.

관련 문제