Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: mail() vie jotkut viestit Hotmailissa ja Gmailissa roskapostiin

hauki [01.09.2017 11:42:46]

#

Osin valmiina saadussa sovelluksessamme osa mail() funktion lähettämistä viesteistä ei mene perille hotmailiin tai gmailiin. Luultavasti syynä roskapostisuodatus. Mistä voisi johtua, että osa viesteistä kuitenkin menee perille?

The Alchemist [01.09.2017 12:22:34]

#

Roskapostisuodatus perustuu heuristiikkaan eli valistuneisiin arvauksiin. Jotkut viestit menevät "sattumalta" läpi ja toiset eivät. Yleensä filtteriin jäämisen syynä on se, ettei viestin lähettäjä noudata alan hyviä käytänteitä, mikä johtaa periaatteessa aiheettomiin spammipisteisiin.

Kannattaa käyttää esimerkiksi Swift Mailer -kirjastoa. Huonoin vaihtoehto on lähteä arpomaan itse mail()-funkkarilla, sillä php:n matalan tason sähköpostitusominaisuudet vaativat hyvää tuntemusta viestittelyn teknisistä detaljeista.

Metabolix [01.09.2017 16:48:01]

#

Mieti ainakin näitä: Miltä palvelimelta posti lähtee? Mikä on merkitty lähettäjän osoitteeksi? Saako kyseinen palvelin edes lähettää tuon lähettäjän postia? (Ovatko SPF- ja DKIM-asetukset oikeat?) Monelleko vastaanottajalle sama viesti menee? Onko kyseessä massapostitus?

Yksinkertainen tapa asian tutkimiseen olisi vertailla itse saapuneita ja kadonneita viestejä. Viestit saa talteen vaikka laittamalla ne piilokopioina osoitteeseen, johon ne varmasti pääsevät.

hauki [01.09.2017 17:49:20]

#

Kyseessä ei ole massapostitus. Viesti vain kyseiselle henkilölle. Lähettäjänä on meidän oman palvelimen osoite.

EDIT. Nyt selvisikin, että hotmailiin ei mene mikään läpi.

Metabolix [01.09.2017 18:17:03]

#

SMTP-palvelimen lokitiedoista tms. voi löytää virheen syyn. Todennäköinen syy ongelmalle on se, että palvelimella on jotenkin ”huono maine”. Jotkin palvelimet kertovat, miksi eivät ota viestejä vastaan, ja jotkin vain eivät ota.

Palvelin päätyy estolistalle, jos se esimerkiksi lähettää automaattivastauksia roskapostiviesteihin (esim. kun vastaanottajaa ei ole) tai on muuten altis roskapostitukselle. Roskaposti pitää suodattaa hiljaisesti pois.

Domain päätyy estolistalle, jos siitä tulee roskapostia. Siksi SPF ja DKIM ovat tärkeät: niillä saa merkittyä, että oman palvelimen posti on oikeaa ja muiden palvelinten posti väärää.

Vaikka oma palvelin olisi täysin kunnossa, posti ei välttämättä ala kulkea joka paikkaan. Jos läheisistä IP-osoitteista lähtee spammia, voidaan varalta blokata isompikin IP-lohko. (Esimerkiksi DigitalOceanin VPS:ssä vaikuttaa olevan tämä ongelma.) Lisäksi joillain palvelimilla on nerokas keksintö blokata posti heikosti tunnetulta palvelimelta – ja millä se palvelin sitten saa paremman maineen, jos se ei pysty lähettämään edes hyviä viestejä?!?

Jos palvelimelta lähtee paljon postia (kymmeniä tai satoja viestejä päivässä) ja omat ongelmat on korjattu, varmaankin se pääsee vähitellen irti noista rajoituksista. Toisaalta esimerkiksi Ohjelmointiputkan postimäärällä vaikuttaa hankalalta saada riittävää positiivista viestikertymää, minkä takia täältä postit lähtevät ainakin osittain ulkopuolisen palvelimen kautta.

Jos postit ovat tärkeitä ja ne pitää saada toimimaan heti varmasti, kannattaa suosiolla maksaa ulkopuolisen postipalvelimen käytöstä.

Pari sivustoa:
https://www.spamcop.net/bl.shtml
https://www.talosintelligence.com/reputation_center

hauki [04.09.2017 08:36:22]

#

Ongelma taitaa olla tosiaan siinä, että aluksi mentiin mail()funktiolla oletuksilla. Vika taitaisi olla smtp korjattavissa asetuksissa, mutta palvelin on estänyt jonkin portin, joten en pääsen testaamaan.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta