2010-11-23 4 views
0

내 웹 사이트에서 뉴스 레터 모듈을 개발 중이며 Symfony 1.4 버전부터 시작합니다. 내 이메일을 여러 수신자에게 보내고 싶습니다. Symfony 1.4의 뉴스 레터 모듈

나는 (실시간 배달 전략)이 간단한 해결책 시도 :

$message = $this->getMailer()->compose(); 
$message->setSubject('My subject'); 
$message->setTo(array('[email protected]', '[email protected]')); 
$message->setFrom('[email protected]', 'Name of expeditor'); 
$html = $this->getPartial('module/action', array('var'=>$var)); 
$message->setBody($html, 'text/html'); 
$number = $this->getMailer()->send($message); 

이메일이 전송되었다하지만받는 사람 목록에 당신은 ... 그리고뿐만 아니라 당신에게 모든 사용자를 볼 수 있습니다

또한 수령인이 많을 수도 있습니다. 그래서 아마도 최대 실행 시간 오류를 피하기 위해 대기자 명단이 필요할 것입니다.

예를 들어 가능한 경우 더 좋은 해결책을 찾을 수 있도록 도와 줄 수 있습니까?

)는 (setTo 대신 Swiftmailer의 setBcc() 함수를 사용해야합니다 수신자 목록을 숨기려면

답변

1

먼저 감사드립니다. 이렇게하면 전자 메일 주소가 맹검 카본 복사본 repicients로 추가되어 서로를 "볼"수 없게됩니다. 또한 자신의 주소 (예 : [email protected])를 setTo() 주소로 추가하십시오.

두 번째로 모든 recpients를 하나의 전자 메일에 추가하면 최대 실행 시간이 문제가되지 않습니다. 단, 기본 SMTP/메일러에 한 번만 연결되므로 $ this-> getMailer) -> send ($ message).

하지만 훨씬 나은 성능을 제공하기 때문에 스풀 기능을 살펴보고 실제 프로세스를 백그라운드 프로세스에서 처리하도록 권합니다. (데이터베이스의 테이블에 추가하고 cronjob은 메일을 보냅니다). 위의 코드를 모든받는 사람을 반복하고 각받는 사람마다 하나의 전자 메일을 만들어 스풀에 추가합니다. 이 방법으로 setTo() 함수를 사용하여받는 사람에게 올바른 주소를 표시 할 수도 있습니다.

More With Symfony 도서의 스풀 기능에 대해 자세히 알아보십시오.

+0

도움 주셔서 감사합니다. – deodys

관련 문제