2011-12-28 7 views
0

symfony 1.4.8 (및 ORT로 Doctrine)에서 swiftmailer (전송)를 사용하여 메일을 보냅니다.symfony에서 이메일 보내기

나는 책의 내용대로 모든 것을 구성했습니다.

dev: 
    mailer: 
    class: sfMailer 
    param: 
     delivery_strategy: spool 
     spool_class:  Swift_DoctrineSpool 
     spool_arguments: [ MailMessage, message, getSpooledMessages ] 
     transport: 
     class: Swift_SmtpTransport 
     param: 
      host: something 
      port: 26 
      encryption: ~ 
      username: something 
      password: something 

실시간 전략을 사용하는 경우 메일을 보내는 데 너무 많은 시간이 걸리므로 사용자는 기다릴 때까지 기다려야합니다. 그런 다음 작업이 완료되고 결과를 볼 수 있습니다. 사용자 등록을 위해 확인 메일을 보내려고하기 때문에 나에게 좋지 않습니다. 느린 경우 사용자는 등록 중에 잠자기 상태가됩니다.

그리고 스풀 전략도 사용할 수 없습니다. 왜냐하면 나는 수동으로 작업을 수동으로 보내야하기 때문에 (나는 맞습니까?) 나는 그렇게 할 수 없습니다. 그것은 등록 후에 자동적으로 보내 져야하기 때문에.

이 상황에 대한 전략이 있습니까? 이메일을 보낼 수있을만큼 빠릅니다 (보낼 때까지 기다릴 필요가 없음)

+0

예, 스풀 전략을 사용하는 경우 주기적으로 작업을 실행해야합니다. 왜 너에게 좋지 않은가? cron을 통해 5 분마다 실행하면 충분합니다. 이메일 하나를 즉시 보내도록 선택할 수도 있습니다. – Maerlyn

+0

그래, 나도 그걸 사용했다. (즉각적인 메일 보내기). 그러나이 전략은 너무 많은 시간을 소비합니다. 나는 이유를 모르지만 그것을 보내는 데 너무 많은 시간이 걸린다. 보내는 메일 작업을 실행하는 것도 좋지만 성능 문제에는 좋지 않다고 생각합니다. 그렇지? – Firouziam

+0

몇 분 간격으로 작업을 실행하면 대부분의 경우 성능상의 문제가되지 않습니다. – Maerlyn

답변

0

저는 실시간 전략을 사용하여 전자 메일을 보내고 때로는 수백 개의 루프를 사용하여 전자 메일을 보냅니다. 전자 메일은 특히 시퀀스 초기에 보내지는 경우 상대적으로 빠릅니다. 나는 다음과 같은 기술을 사용했습니다

: API를 통해

  • Gmail 및 SSL 암호화
  • SendGrid을
  • 이메일을 보내는 작업을 휩쓸 도착 이메일 트랜잭션 테이블을 사용하는 내 자신의 API .

제 경험상 단일 확인 이메일은 매우 편리합니다. 그렇지 않은 경우 병목 지점을 확인하기 위해 해당 트랜잭션을 디버깅하는 다른 (명령 줄) 방법을 찾아야합니다. 나는 그것의 PHP, Symfony 또는 Swift를 의심한다.