Hoe kan ik een return code van de functie MAIL() opvangen, zodat ik een gebruiker kan vertellen wat er precies misgaat? Bijvoorbeeld, dat e-mail adres niet geldig is, of niet bestaat, of dat provider offline is, of e-mail adrespost volgeraakt is, etc.
Edit:
Een een hoop andere dingen die je wilt zijn wel mogelijk met PHP, maar dan moet je veel scripten. Bijvoorbeeld kijken of provider online is, dat doe je met een ping of een fsockopen of zo.
Is er dan geen andere manier bij een andere functie? Er zou toch een manier zijn om bijvoorbeeld een boodschap 'Het genoemde e-mail adres bestaat niet', 'De provider is op dit moment down', enz. te kunnen weergeven, niet waar?
Wat fijn voor zo'n oplossing, maar het is wel voor een geldig e-mail adres! Graag ook een procedure om te kijken, of een provider wel online is, of niet, enz.
dat is deze ;) hij check of het email adres goed is opgemaakt, en of de provider van het email adres online is (let op het gethostbyname() gedeelte ;) )
Die kijkt in de DNS-records of er een MX, een A of een CNAME record is. Dan weet je iig of het domein bestaat.
Waar je nooit achter kan komen is opf de gebruiker @domein bestaat, want daarvoor moet je op de server @domein kijken. En geloof me, er zullen niet veel beheerders zijn die je daar toestemming voor geven.
Verder is het imo niet intressant om te weten of een host online is. Het mail-protocol is zo ontworpen dat berichten niet ineens verdwenen zijn als de host down is. Deze blijven dan netjes wachten totdat ze weer verder kunnen. Het bericht wordt dan niet direct afgeleverd, maar het komt wel aan.
@jan , providers online zijn? zo werkt dat niet. als je provider of de mailserver geen solaas geeft komt de mail 99% van de keer in een fallback server terecht, die checked of er al reactie komt en dan verstuurd hij alsnog de mail. Vanuit php is dit niet mogelijk bij mij weet. Misschien met timeouts proberen oid, maar daar begin ik niet aan :)