jak odeslat více emailů při jednom smtp spojení?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mcmatak
Člen | 505
+
0
-

Odesílám denně na seznam.cz cca 1000 000 emailů, po konzultaci s helpdeskem seznamu, mi řekli že při jednom smtp spojení mám odeslat stovky emailů.

Je tohle v nette vůbec možné?

Šaman
Člen | 2668
+
0
-

Nechápu moc, v čem je problém. SmtpMailer se přece připojí k serveru jen jednou, stejně jako databáze. Takže se připojíš (ideálně si necháš Mailer vytvořit už v DI kontejneru pomocí configu) a pak s ním 100× odešleš email, aniž bys vytvářel nový request.

mcmatak
Člen | 505
+
0
-

ted asi nechapu ja, jde o to ze mailer s prijemcem tedy seznam.cz musi odeslat stovky emailů během jednoho připojení

jinak dostanu BAN

a nette smtp mailer jestli se nepletu po kazdem odeslani emailu se odpojí

Robyer
Člen | 74
+
0
-

Všiml jsem si, že v nové verzi Nette (2.1.0-rc) je jedna z novinek:

SmtpMailer: persistent connection

Což tvůj problém zřejmě řeší :)

mcmatak
Člen | 505
+
0
-

vypadá zajímavě, díky, jen je to ještě v testovací fázi, vyzkouším, ale pro mne každý průser je velký průser :( takže z toho mám trochu obavy

Robyer
Člen | 74
+
0
-

Pokud nechceš používat celé nové Nette, tak by teoreticky mohlo stačit vzít si ty změny Maileru… Minimálně tento commit: https://github.com/…0d2e78fe9d59 (možná následovaly nějaké opravy po něm, ale tak detailně jsem to nezkoumal)

duskohu
Člen | 778
+
0
-

@mcmatak mandrill Freeup to 12k emails per month NasExt/Mandrill

mcmatak
Člen | 505
+
0
-

díky už jsem také se díval, ale na 1000 000 emailů každý den je to docela drahé

duskohu
Člen | 778
+
0
-

@mcmatak len pri posielani emailov cez hosting a este v takom mnozstve je dost velka pravdepodobnost ze skoncis na nejakom black liste.

mcmatak
Člen | 505
+
0
-

proč black list? a mandrilla myslíš že nemá hosting? nebo myslíš, že jsou napíchnutí na páteřní síť? to asi ne, že?

llsm
Člen | 121
+
0
-

Problém je, kdo tě zabanuje. V případě, že to budeš posílat přes smtp svého hostingu nebo poskytovatele připojení, tak tě pravděpodobně dřív nebo později zaříznou tam. Speciálně jestli jde o miliony mailů. Proto člověk platí za služby jako mandrilla, kterým by se něco takového stát nemělo (netvrdím, že nemůže, ale kdyby se to náhodou stalo (a nebylo vyřešeno ze strany poskytovatele v řádu hodin), tak je velmi snadné jít hned jinam a jen si změníš poskytovatele v aplikaci).
Jediné, co se ti pak může stát, že mailové servery začnou blokovat tvojí doménu (nebo IP adresu serveru), ze které posíláš, protože tvoje maily budou považovat za SPAM. Ale před tím už se musíš ochránit sám. Toto jsem nedávno řešil u veřejné IP adresy klienty UPC.

mcmatak
Člen | 505
+
0
-
  1. jasně to já chápu, ale můj poskytovatel o tom samozřejmě ví, platím mu za mailový server, mám několik serverů jen na newslettery, takže počítá s tím, že maily budu odesílat
  2. BAN ano dostal jsem ban od seznam.cz a centrum.cz a ti mi po konzultaci řekli, že mám během jednoho spojení odesílat stovky emailů (proto to řeším)

řešení jako mandrilla by mne stála měsíčně více než 30k a to není malá částka, to je ročně skoro 400k, to stojí za to si to vyřešit sám ne? a hlavně za ty prachy to pak ztrácí smysl

akadlec
Člen | 1326
+
0
-

A posíláš to teda jak? Přes SMTP seznamu nebo přes SMTP vlastního serveru? Protože pokud pomocí vlastního poštovního serveru, což tipuju že ano:

platím mu za mailový server, mám několik serverů jen na newslettery

Tak tím seznam neobejdeš, když přes vlastní SMTP pošleš maily v dávkách a poletí všechny na seznam tak ti stejnak dá ban za spam.

mcmatak
Člen | 505
+
0
-

proc mi dá ban za spam?

romiix.org
Člen | 343
+
0
-

Pretože ak naraz pošleš milión e-mailov z jednej IP na SMTP seznamu, pravdepodobne to vyhodnotí ako SPAM.

Ideálne je posielať v malých dávkach z rôznych IP – využiť špecializovanú službu alebo si to vydiskutovať so seznamom, googlom a pod.

mcmatak
Člen | 505
+
0
-

tak neposila se to naraz ale 5k emailu 15 minut jedna IP

akadlec
Člen | 1326
+
0
-

Tak to je úplně jedno, jednoše, pokud během krátké chvíle dorazí velké množství emailů tak tě spamfiltr označí za spamera.

Nicméně stále si neodpověděl z jakého serveru to odesíláš – vlastní či seznam

mcmatak
Člen | 505
+
0
-

odpověděl, odesílám vše z vlastních serverů
odkud máte ty informace, že mne někdo osloví za spammera, jak říkám diskutoval jsem to se seznamem a centrumem a od nich přišla tato informace, že mám v jednom spojení posílat stovky emailů ne že mě zabanují jako spammera

ale tak samozřejmě není na světě jen centrum a seznam, ale jak myslíte, že to má řešené třeba mandrilla? fakt věříte tomu, že oslovují všechny emailové servery a dojednávají s nimi podmínky za kterých jejich IP vyčleňují do whitelistu? to je blbost, že?

akadlec
Člen | 1326
+
0
-

odkud? ze spamlistů…každou chvíli se řeší proč se server dostal na spamlist a odpověď je jednoduchá, objeví se borec co je schopen v dávkách posílat tisíce mailu a automaticky pak blokuje celý server.

To co vám sdělil support seznamu vypadá spíš tak že by jste měl limitovat počet odeslaných mailů pokud se připojíte přes jejich SMTP, v opačném případě jim to může být jedno, protože pokud ty maily odešlete z vašeho serveru přes vaše smtp tak je imho jedno zda pošlete 10 mailů na jedno spojení a nebo 10 000 mailů na jedno spojení, vždy se ty maily zařadí do fronty a FIFO jedou ven takže pokud se vám tam sejde 500 000 seznamáckych adres tak prostě na seznam poletí balík mailů.

mcmatak
Člen | 505
+
0
-

začíname se v tom ztrácet,

vy tedy tvrdíte, že není možnost odesílat takové velké množství emailů, protože Vás někdo/něco označí za spammera, takže to tedy nikdo nedělá?

a smtp jasně, mám několik smtp vlastních serverů

potřeboval bych se chytit nějakého tématu, přijde mi to hrozně všechno neurčité a nejasné a ztrácím se v tom co vlastně řešíme

OK3
Člen | 91
+
0
-

Možná jsem mimo, ale neřešila by to taková konstrukce? Za předpokladu, že se jedná o stejnou zprávu pro všechny v poli $users

<?php

$mail = new Nette\Mail\Message;
$mail->setBody(...);
$mail->setSubject(...);
$mail->setFrom(...);

foreach ($users as $user) {
	$mail->addBcc($user->email);
}

$mail->send();	// odeslat zprávu na x příjemců

?>
Robyer
Člen | 74
+
0
-

mcmatak: Já ti přece odpověděl – dal jsem ti odkaz na commit, který upravuje SMTPMailer tak, aby používal persistentní spojení…