2014-01-23 3 views
1

Symfony 2.4로 만든 웹 응용 프로그램이 있고 SwiftMailer를 사용하여 전자 메일을 보냅니다.Swiftmailer가 전자 메일을 보내지 않습니다 (스풀에만 저장)

메일러 전송 센드 메일처럼 사용합니다.

사용자가 이메일을 보내면이 이메일을받지 못했습니다. 하지만 커맨드 라인에서 :

$php app/console swiftmailer:spool:send --env=prod 

나는 모든 이메일을받습니다.

¿ 무엇을 할 수 있습니까?

고맙습니다.

내 설정 파일에 스풀링에 대한 모든 참조를 제거했습니다

---- 편집 ----하지만, 문제는 지속.

---- 편집 2 ----

Config.yml

mailer_transport: sendmail 
mailer_host: **** 
mailer_user: ***** 
mailer_password: **** 
+0

보십시오 (명령 행 스크립트 예제에 기금이, 난 .... 난 당신을 위해 일을해야한다 생각에 편집 한) docs : http://symfony.com/doc/current/cookbook/email/spool.html – Lee

+0

감사하지만 이걸 제거하고 싶습니다. 사람이 나에게 전자 메일을 보내고 싶습니다. 이것은 스풀에 저장되지 않습니다. :/ – user2794692

답변

2

는 parameters.yml 내가 내가 내가 그렇게 심포니을 사용한 적이? 생각 (구성에서 스풀 라인을 삭제 문서를 해석하는 중).

설정에서 스풀 언급을 삭제하면 스풀링을 중지하고 즉시 보내야합니다.

그렇기 때문에 스풀링의 이유는 요청 실행이 끝날 때 전자 메일을 보내서 성능 저하 (지연된 요청)가없는 것입니다 (아마도 종료 기능을 통해). ..이 기능이 실행되지 않아 이메일이 전송되지 않는 유일한 이유는 스크립트가 일찍 종료되면 (즉, 종료/종료 또는 검색되지 않은 예외), 패치가 아닌 근본 원인을 해결하는 것이 좋습니다. 그것 주위.

편집 : 수동 플러시

// now manually flush the queue 
$container = $this->getContainer(); 
$mailer = $this->get('mailer'); 
$spool = $mailer->getTransport()->getSpool(); 
$transport = $container->get('swiftmailer.transport.real'); 

$spool->flushQueue($transport); 

http://symfony.com/doc/current/cookbook/console/sending_emails.html

+0

고마워,하지만 내 설정 파일에 스풀에 대한 모든 참조를 제거했습니다 및 이메일을 보내지 않습니다 – user2794692

+0

그들은 runn에 의해 여전히 스풀링하지 확인할 수 있습니까? 명령 행을 통해 send 명령을 보내십시오. 그 명령을 실행 한 후 전자 메일을 받으면 여전히 스풀링 중이며 그 이유를 알아야합니다 – Lee

+0

명령 줄을 사용할 때 스풀에 저장된 모든 전자 메일을 수신합니다. 그런 다음 다른 사용자가 나에게 이메일을 보내면 다시 스풀에 저장되므로 명령 줄을 다시 실행해야합니다. – user2794692

관련 문제