Tökéletes levélküldés PHP-ben ami nem lesz spam
2013-01-25T08:08:34+01:00
2013-01-29T23:19:38+01:00
2022-07-23T16:16:14+02:00
  • Szerinted hány levet küld ki percenként pl a Facebook vagy az AMAZON?
    Ha az Amazon infrastruktúráját használod és figyelsz a visszapattanó levelekre akkor nem lesz gond.
    Rengeteget szívtam a magyar szolgáltatókkal amíg rájöttem hogy van ez a SES azóta nincsen gond a levelezéssel.

    Mutasd a teljes hozzászólást!
  • Ami segít citromail-es problémádon (és úgy általában):
    - valid smtp szerver használata
    - valid levelek
    - percenként max n levél kiküldése

    Egy táblában gyűjtöd a kiküldendő leveleket, teszel bele egy nullable dátum mezőt. Percenként időzítve futtatsz egy PHP-t, ami LIMIT n-el kérdezi a null-os dátumú rekordokat és küldi, majd visszaírja a dátumot. Az n az valahol 10 és 50 közt legyen.

    Lehet priorizálni is ebben a táblában. pl. azonnali eseményértesítő: 1, napi értesítő 2, napi hírlevél 3, havi hírlevél 4 és aztán: "SELECT * FROM emails WHERE sent_at IS NULL ORDER BY priority LIMIT 10".

    Lassabban mennek ki az értesítők egy-egy sokakat érintő eseményről, de nem zárod ki magad.
    Mutasd a teljes hozzászólást!
  • Érdemes az adott domain-hez a megfelelő késleltetést beállítani. Ezt a késleltetést neked kell kezelned, ha saját alkalmazást írsz, de egyébként minden normális hírlevélküldő szoftver tudja ezt.

    Ha rákeresel a "domain throttling" kifejezésre akkor egészen konkrét infókkal is találkozhatsz, hogy melyik domain, milyen késleltetést igényel.
    Mutasd a teljes hozzászólást!
  • Hogy kerüli el azt, hogy ne bombázza meg pl a citromailt amikor 50 egymás utáni címre megy ki pl értesítő levél?
    Mert az smtp az gondolom több szálon küldi a leveleket és ezért hirtelen 10-20 kapcsolat is érkezhet ugyanonnan amit a citromail nem igazán szeret.
    Mutasd a teljes hozzászólást!
  • Ha azt szeretnéd, hogy biztosan a postaládában landoljon a levél akkor SMTP-t kell használnod.
    Továbbá oda kell figyelned a vissza pattanó emailekre, vagyis ha van egy listád mondjuk 10.000 címmel és az első kiküldésnél 58-at vissza dobnak akkor azokat címeket jelőld meg hibásnak és ne küldjél több emailt nekik.

    A legjobb eredményt az AMAZON SES + PHP Mailer-el érdem el.
    Az AMAZON SES nem ingyenes, de nagyon jó szolgáltatás.

    AMAZON SES

    1000 email kiküldése 0,10 dollárba kerül, ~22Ft ami szerintem megfizethető.

    Igazolnod kell hogy a van hozzáférésed a feladó emailcímhez. Továbbá tudsz DKIM-et is használni.

    Miután regisztráltál a SES ben kapsz egy felhasználó nevet meg egy jelszót. Kiküldesz egy igaziló levelet a feladónak szánt emailcímre és miután megerősítetted használhatod is.

    Én a phpmailer-el használom.

    <?php class MailAWS { private $host = "email-smtp.us-east-1.amazonaws.com"; private $username = "SES_FELHASZNALO"; private $pass = "SES_JELSZAVAD"; private $mailaws; private $from = 'info@DOMAIN.HU'; public $error = false; public $error_msg = ''; function __construct(){ require_once __DIR__.'/phpmailer/class.phpmailer.php'; $this->mailaws = new PHPMailer(true); } function set_from($from){ $this->from = $from; } function sendAWS($to,$subject,$message){ try { $this->mailaws->IsSMTP(); $this->mailaws->Host = $this->host; // SMTP server $this->mailaws->SMTPDebug = 1; // enables SMTP debug information (for testing) $this->mailaws->SMTPAuth = true; // enable SMTP authentication $this->mailaws->SMTPSecure = "ssl"; $this->mailaws->Host = $this->host; // sets the SMTP server $this->mailaws->Port = 465; // set the SMTP port for the GMAIL server $this->mailaws->Username = $this->username; // SMTP account username $this->mailaws->Password = $this->pass; $this->mailaws->CharSet='UTF-8'; $this->mailaws->SetFrom($this->from); $this->mailaws->AddAddress($to); $this->mailaws->Subject = $subject; $this->mailaws->Body= $message; $this->mailaws->IsHTML(); $this->mailaws->Send(); } catch (Exception $e) { $this->error = true; $this->error_msg = $e->getMessage(); } } }

    Citromail, Freemail, Gmail stb tökéletesen müködik
    Mutasd a teljes hozzászólást!
  • Saját szerverre gondoltam :)
    Mondok egy-két példát:
    citromail ha egy IP címről két kérés érkezik nem fogadja el.
    Hotmail a DNS beállításra érzékeny
    Van ahol visszakövetik az MX-et és ha nem szerepel benne a küldő szerver IP-je (ami értelemszerűen így van mivel nem egy szerveren van a web és a mail) akkor spam lesz.

    A valid ok az fontos!

    Szóval tapasztalat főleg olyanoktól akiknek problémájuk volt :D
    Mutasd a teljes hozzászólást!
  • Szia!

    Lehet, hogy nem sokat segít, ha azt mondom, legyen minden valid, de nekem ez eddig bevált. Jelenleg symfony2-ben fejlesztek, és a swiftmailer nevű (akár standalone módon is használható) lib-et használom mail küldésre. Eddig semmi gond nem volt vele,mindent tud, ami kell és ennyi.

    Akkor volt gondom levelekkel, amikor karakterkódolás nem stimmelt, vagy mimeType, vagy egyáltalán is a formátum nem stimmelt (\n\r stb..). Szóval szerintem ha minden valid, nagy baj nem történhet, a spam meg inkább a tartalom miatt spam, nem technikailag. Ha egy jó tárhelyszolgáltónál vagy szerintem ne aggódj, csak legyen valid minden, amennyire lehet.

    Üdv MI
    Mutasd a teljes hozzászólást!
  • Nem bonyolult:
    SMTP szolgáltatás + PHP mailer
    Mutasd a teljes hozzászólást!
  • Azért nyitottam ezt a topicot, mert a fenti témával kapcsolatban olyan mennyiségű oldal foglalkozik a google-en, hogy lassan az ember beleőrül.
    Ráadásul az információk jó része nem megfelelő és nem tapasztalatra, hanem egy másik honlapra hivatkozik ami szintén egy másikra és a vége az, hogy 10-20 honlap tartalmát szajkózzák amik szintén nem tapasztalatra, hanem elméletekre épülnek.

    A cél az, hogy hogyan küldjünk PHP-vel levelet úgy, hogy az a legkisebb valószínűséggel legyen spam. (Nem spamelés céljából, hanem pl a legfontosabb: aktiváló leveleket, értesítőket, e-számlákat stb).

    Nem csak a PHP megvalósítás érdekel, hanem az is, hogy mit kell beállítani a DNS-ben, mit kell tudnia a szervernek.
    A google a barátodon már régen túl vagyok, ahogy fent írtam linkekkel tele van a padlás, most inkább jöjjön a tapasztalat :)
    Mutasd a teljes hozzászólást!
abcd