Yii Framework Forum: Wysyłanie Maili - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Wysyłanie Maili Rate Topic: -----

#1 User is offline   mentorq 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 105
  • Joined: 26-June 13

Posted 28 October 2013 - 02:45 AM

Potrzebuję pomocy w kwestii wysyłania masowych maili, tzn. wysłać około 100 maili po 1 kliknięciu(bądź więcej). Póki co, zrobiłem to na zasadzie, że sposób na wysłanie 1 maila wrzuciłem w pętle i działa, ale nim pętla przeleci 100 powtórzeń robi się naprawdę przykro.

Czy mógłby mnie ktoś pokierować jak zrobić to w bardziej optymalny sposób ?? Maile są zbierane na podstawie danych od użytkownika.

Pozdrawiam i z góry dziękuję.
0

#2 User is offline   luk1999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 35
  • Joined: 20-April 11
  • Location:Poland

Posted 28 October 2013 - 04:44 AM

Możesz spróbować użyć SwiftMailera z pluginem Decorator (i np. pluginem Throttler). Decorator pozwala na zdefiniowanie placeholderów w szablonie maila. Później już są one zastępowane automatycznie danymi ze zdefiniowanej tablicy.
Jeśli masz problemy z szybkością wysyłania e-maili w Swifcie, spróbuj zmienić encoding na base64:
$message = Swift_Message::newInstance()
    ...
   //http://forum.symfony-project.org/viewtopic.php?t=33488
   ->setEncoder(Swift_Encoding::getBase64Encoding());

0

#3 User is offline   nineinchnick 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 622
  • Joined: 12-September 11
  • Location:Bialystok, Poland

Posted 28 October 2013 - 10:36 AM

A ja bym jeszcze zaproponował umieszczenie mejli w jakiejś kolejce i wysyłanie ich czymś, co wywołuje się okresowo. Specjalnie nie podaję przykładów, jeśli będziesz chciał wziąść to pod uwagę to można się dalej zastanawiać :-)
Don't be a dick.
0

#4 User is offline   Thommee 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 24-June 12
  • Location:Poznań, Poland

Posted 03 November 2013 - 07:58 AM

SwiftMailer posiada coś takigo jak batchowe wysyłanuie emaili: http://swiftmailer.o...emails-in-batch

Przy większej ilości możesz (tak jak napisał @nineinchnick) użyć kolejki:
najprostsza oparta na tabeli bazy danych +jakiś cron przetwarzający zadania.
Możesz też pokusić się o coś bardziej zaawansowanego jak np Gearman lub RabbitMQ.
0

#5 User is offline   redguy 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 781
  • Joined: 02-July 10
  • Location:Central Poland

Posted 15 November 2013 - 07:05 AM

to jeszcze taka uwaga - Jeśli wszystkie maile mają być identyczne (bez personalizacji), to po prostu wrzuć wszystkich odbiorców do BCC (o ile oczywiście akceptowalne jest, że końcowy użytkownik zobaczy puste po "To" w swoim programie pocztowym, ale to zwykle nie przeszkadza). Takie rozwiązanie jest najlepsze z punktu widzenia obciążenia serwera pocztowego.

Jeśli BCC odpada - to faktycznie polecam kolejkę (my stosujemy albo cron albo gearman).
red
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users