Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Masovno slanje maila - kako?

[es] :: PHP :: Masovno slanje maila - kako?

[ Pregleda: 5843 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kelja

Član broj: 70429
Poruke: 1416
77.46.178.*



+35 Profil

icon Masovno slanje maila - kako?25.05.2007. u 20:32 - pre 205 meseci
Radim neki real estate sajtic i jedan od zahteva je slanje maila svim korisnicima od strane administratora(direktno iz admin panela).

Ne verujem da ce sajt imati ogroman broj korisnika(sumnjam da ce dogurati i do 300),ali svejedno, ne bih da rizikujem, pa da koristim metod:loop kroz mejlove iz baze +mail()...

Zanima me kakva su vasa iskustva ,koji je najveci broj korisnika(mejlova) koji mail() funkcija moze da 'podnese', ako se radi na ovaj nacin?

Neki forumasi su pisali da za ove svrhe koriste php mailer klasu.Da li biste i vi to preporucili?

Pozdrav!
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.sbb.co.yu.



+19 Profil

icon Re: Masovno slanje maila - kako?25.05.2007. u 21:51 - pre 205 meseci
Najvažnije pitanje je "koliko smeš da pošalješ a da ne naljutiš hosting admina" a ne "koliko može da izdrži".

Prvo vidi sa adminitratorom koliko sme, i koji ritam slanja preporučuje, kao i metod (mail(),SMTP,...),
implementacija je tek na drugom mestu.

U principu je dovoljno samo pauzama usporiti slanje i sve će proći.
Preporučujem upotrebu SMTP protokola da izbegao opterećivanje http servera,
na www.swiftmailer.org imaš free klasu koja sve to radi.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.178.*



+35 Profil

icon Re: Masovno slanje maila - kako?26.05.2007. u 09:17 - pre 205 meseci
Hvala na odgovorima, @mVeliki.
Sad sam dobio podatke od klijenta kako to funkcionise na drugom njegovom sajtu, na istom serveru.
Ima oko 600 korisnika,koristi mail() funkciju,salje se po 50 mejlova(s pauzama izmedju slanja,kako on kaze).

E sad, kako napraviti pauze tokom slanja?Dakle, implementacija :)
Unapred hvala!
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
82.208.211.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: Masovno slanje maila - kako?26.05.2007. u 09:32 - pre 205 meseci
Evo ti jedno glupo resenje, ali pouzdano. Smesti sve mailove u tmp tabelu, posalje prvih 50, odma ih obrisi, ponudi korisniku dugme "Send next 50" pa nek klikne 5 puta, ako nema puno mail-ova, nece mu biti posebno tesko. Ili, naravno, cron, ali ako bi mogao cron da pokrenes onog trenutka ka korisnik posalje prvu turu mailova. Nisam siguran da ovo moze.
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
91.150.102.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Masovno slanje maila - kako?26.05.2007. u 09:44 - pre 205 meseci
Jako je prosto odraditi pauzu. Ovako sam ja radio kod mog CoolMailer-a: U principu je jaaaako slično kao kada radiš paginaciju: Iz baze selektuješ prvih 50 mejlova i pošalješ ih, a onda podesiš meta refresh da otvara tu istu stranicu za 10ak sekundi sa parametrom mail.php?strana=2. Posle toga selektuješ od 51. do 100. adrese i šalješ mejl na te adrese.. onda ideš na ?strana=3 i tako do kraja.
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.178.*



+35 Profil

icon Re: Masovno slanje maila - kako?26.05.2007. u 12:07 - pre 205 meseci
Hvala svima!
 
Odgovor na temu

BitiPrvi
BitiPrvi
Novi Sad

Član broj: 149856
Poruke: 166
*.dynamic.isp.telekom.rs.

Sajt: www.oglasi-besplatni.in.r..


+9 Profil

icon Re: Masovno slanje maila - kako?19.08.2011. u 17:09 - pre 154 meseci
Tema je stara ali i dalje aktuelna.
Molim vas da mi kažete koju php skrptu preporučujete za slanje maila kada su u pitanju sajtovi sa nekoliko hiljada članova?
Šta je dakle ono što "radi posao" a da nije suviše komplikovano?
Hvala.

 
Odgovor na temu

slack3r
System Architect
Sarajevo

Član broj: 288232
Poruke: 4
178.77.22.*



Profil

icon Re: Masovno slanje maila - kako?19.08.2011. u 17:54 - pre 154 meseci
http://www.google.ba/search?q=php+newsletter

phplist nije los, pogledaj i ostale
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.rs.



+33 Profil

icon Re: Masovno slanje maila - kako?19.08.2011. u 18:02 - pre 154 meseci
Pa ti u principu posao možeš da završiš i sa standardnom mail() funkcijom, mada je naravno preporučljivije da to bude neka naprednija biblioteka, kao što je već bezbroj puta spominjani SwiftMailer, koji nudi raznovrsne opcije za slanje email poruka, npr. batch email slanje i mnoge druge.

Ali tu nije u pitanju konkretna PHP biblioteka koja bi se koristila za te namene, već se u te svrhe preporučuje sasvim drugačija arhitektura. Npr. ako imaš case da nakon neke akcije, recimo submit-a neke forme, treba hiljadama korisnika da šalješ email-ove, i to svakom zasebno, a pritom taj sajt/aplikacija ima dosta velik load, onda će taj koji bude submit-ovao tu neku formu morati dosta da se načeka dok njegov browser ne kompletira taj zahtev. U tom slučaju je najbolje mail-ove najpre poslati u neki queue, pa da ih onda neki nezavisan proces šalje kad stigne. E sad to queue može da bude i obična tabela u bazi, pa da onda neki cron samo isčitava tu tabelu i šalje email-ove, ali uglavnom, ideja je to asinhrono slanje poruka. Postoji i jedna PEAR klasa - Mail_Queue, koja radi baš po tom principu. Naravno, još bolja (brža) varijanta su rešenja namenjena baš za ostvarivanje te queueing funkcionalnosti, kao što je Gearman, ili recimo predlog opisan na ovoj stranici, baziran na Zend Server Job Queue-u.
 
Odgovor na temu

BitiPrvi
BitiPrvi
Novi Sad

Član broj: 149856
Poruke: 166
*.dynamic.isp.telekom.rs.

Sajt: www.oglasi-besplatni.in.r..


+9 Profil

icon Re: Masovno slanje maila - kako?19.08.2011. u 23:18 - pre 154 meseci
Citat:
Pa ti u principu posao možeš da završiš i sa standardnom mail() funkcijom,

Trenutno postoji ograničenje, pa prilikom slanja "email all members" mail dobije samo odredjeni broj osoba (do odredjene cifre).
Preko te cifre ostali poslati mailovi se odbacuju "Messages discarded".
Hvala vam na sugestijama.
Nadam se da će još neko ko ima iskustva sa ovim sugerisati nešto efikasno i praktično.

 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
95.180.62.*



+6 Profil

icon Re: Masovno slanje maila - kako?19.08.2011. u 23:25 - pre 154 meseci
ako mail dobije samo odredjeni broj osoba, to jest, postoji ogranicenje.

nije do skripte nego ti je provajder lupio limit.

na primer, ja kod mog provajdera imam ogranicenje na 500 mailova na sat.
inace ako ti to toliko znaci i ako ti je toliko potrebno pogledaj http://sendgrid.com/
 
Odgovor na temu

BitiPrvi
BitiPrvi
Novi Sad

Član broj: 149856
Poruke: 166
*.dynamic.isp.telekom.rs.

Sajt: www.oglasi-besplatni.in.r..


+9 Profil

icon Re: Masovno slanje maila - kako?20.08.2011. u 17:09 - pre 154 meseci
Citat:
nije do skripte nego ti je provajder lupio limit.

na primer, ja kod mog provajdera imam ogranicenje na 500 mailova na sat.

Upravo tako,i upravo zbog toga tražim nešto bolje, jer na ovaj način mail dobije samo deo registrovanih članova, a svi ostali nemaju pojma da je išta poslato.

Ps.
Naravno, provajder mora da postavi limit da bi samog sebe zaštitio da nebi dospeo na "crnu listu" i da se nebi tretirao kao spamer, ili neko ko dozvoljava spam.


 
Odgovor na temu

slack3r
System Architect
Sarajevo

Član broj: 288232
Poruke: 4
178.77.11.*



Profil

icon Re: Masovno slanje maila - kako?20.08.2011. u 21:36 - pre 154 meseci
Zasto jednostavno ne postavis da umjesto mail() funkcije puni tabelu npr. mailq gdje imas rcpt-a i id content-a (iz druge tabele)

Postavis onda cron koji ce okidati po 100 ili 50 komada svakih 10 minuta.

Takvo resenje sam radio za jednu banku, gdje cak nisam imao direktan smtp pristup nego sam slao content enkodiran preko njihovog proxy na public server koji je dekodirao i slao korisnicima bez store-anja podataka.



Code:

////////////////////////////////////////////////////////////////////////////////
// GET current count
$set_cnt = mysql_query("SELECT seq from mailq_seq");
$seq_val = mysql_fetch_row($set_cnt);
// Make query and increase
$result = mysql_query("SELECT email,uniq FROM emails LIMIT {$seq_val[0]} , {$seq}");
// Increment sequence
$inc_cnt = mysql_query("UPDATE mailq_seq set seq=seq+{$seq}");
// Loop through mails
while($row = mysql_fetch_assoc($result)) {
        # LOOP MAILS
        $xbody = $body;
        $xbody .= "If u want to unsubscribe from our emails please click <a href='http://www.domain.tld/?unsub=".$row['uniq']."'>here</a>";
        sendIT($xbody, $row[email]);
}
if(mysql_num_rows($result)==0){ @mysql_query("UPDATE mailq_seq set seq=0, cid=''");
                                echo 'Ciklus zavrsen u:'.date('d.m.Y h:i:s A');
                                exit;
}
}else{
    exit;
}
?>
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Masovno slanje maila - kako?22.08.2011. u 22:48 - pre 154 meseci
Korišćenje mail funkcije u petlji nije preporučljivo. Zašto ne koristiš BCC?

Primer:

Code:
$adrese = array (
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]',
'[email protected]'
);

//Napravi listu za BCC
$lista = implode("," , $adrese);

//I na kraju slanje maila
mail(
      '[email protected]',
      'Naslov za email',
      'Email poruka',
      "From: [email protected]\r\nBcc: ($lista)"
     );


Dakle, uvek prvo "pripremiš" funkciju ili upit pa tek onda izvršiš van petlje. Isto tako radiš i sa UPDATE funkcijom kada označiš koji su mailovi poslati i datum slanja (pošto je preporučljivo stavljati do 50-100 maila u jednom ciklusu).
UPDATE može da izgleda ovako. Prvo izvučeš mailove korisnika iz baze gde je datum slanja manji od određenog vremena, ili ako koristiš newsletter možeš staviti ID newslettera (last_newsletter_id) i tada tražiš korisnike koji su označeni za slanje tog newslettera (vrednost 1 poslato, vrednost 0 na čekanju za slanje).
Pošalješ 50 mailova i pripremiš upit za UPDATE funkciju.
Code:
UPDATE users SET `last_newsletter_id` = 'ID', `send` = '1', `date` = 'NOW()' 
         WHERE (`user_id` = 1 AND `user_id`=2...i tako 50 ID-eva u svakom ciklusu)
         AND `send` = 0;

I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

[es] :: PHP :: Masovno slanje maila - kako?

[ Pregleda: 5843 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.