[PHP] Mail ontvangen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi beste Tweakers,

Ik zit met het volgende:

Ik wou graag een bounce-mail-management-script in elkaar klussen. Alleen kom ik wat probleempjes tegen.

Hoe wil ik het gaan doen:
Elke keer als de mailinglist verstuurd wordt naar de ingeschreven e-mailadressen wordt er een Reply-To aan de header van het mailtje gestuurd. Dit reply-to adres is een adres op een subdomein van de website. Ook bevat dit adres een unieke code, die zeg maar bij het e-mailadres hoort..
Dus wanneer pietje@pietjesdomein.nl niet bestaat, en de externe server een bounce-mailtje terug stuurt, dan wordt deze gestuurd naar het reply-to adres: iets als pietje-87IUau89@nieuwsbrief.mijndomein.nl.
Vervolgens wil ik dat bouncemailtje doorsturen naar een PHP-script mbv van de catch-all functie.

Alleen vraag ik me af of dit mogelijk is? Dus het mailtje doorsturen naar een PHP-script en de headers uitlezen en filtreren op woorden als "delayed", "failed","returned" etc. Om vervolgens het emailadres uit te laten schrijven in de database met geregistreerde e-mailadressen?


Mijn vraag is eigenlijk ook een beetje hoe jullie nou eigenlijk bounce-mailtjes afhandelen..

[ Voor 4% gewijzigd door Verwijderd op 09-08-2008 12:52 ]


Acties:
  • 0 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Laatst online: 02:46

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Misschien is het handig als je even aangeeft welke mailserver software en dergelijke je gebruikt ;)

Voor zover ik weet zijn er wel mailservers die dat soort acties ondersteunen in elk geval. Lijkt me ook stug eigenlijk dat daar op het hele internet niets over te vinden zou zijn?

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@Orion84>
Een catch-all functie zou op alle mailservers mogelijk moeten zijn, maar ik heb beschikking over DirectAdmin en cPanel.

Ik ben al een hele tijd aan het "googlen" geweest, misschien zoek ik op de verkeerde woorden, ik heb nog niks bruikbaars gevonden.

Acties:
  • 0 Henk 'm!

  • Eris
  • Registratie: December 2003
  • Laatst online: 19-09 13:46

Eris

-

Het is sowiso haal baar om die email adressen op te vangen en door te laten sturen naar een pop3 account. Daarna is het mogelijk om via php de email uit te lezen via http://www.php.net/imap of via een pop3 php class die overal te downloaden is..

Acties:
  • 0 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Laatst online: 02:46

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Een catch-all functie wel ja, maar het doorsturen van bepaalde mailtjes naar een php script is een ander verhaal natuurlijk. DirectAdmin en cPanel zegt niet zo veel, dat zijn alleen maar webinterfaces om het een en ander in te stellen op je server, dat zegt niks over de daadwerkelijke e-mailsoftware die gebruikt wordt.

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@Orion84> Exim ;)

@Eris> Dus wat jij eigenlijk bedoeld is om de mailtjes eerst naar een pop3 account om ze daarna met een PHP script op te halen? Dit PHP-script zou je dus eigenlijk dmv een cron-job elke paar minuten moeten uitvoeren om te checken op mailtjes.

Acties:
  • 0 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Laatst online: 02:46

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Ik kan toch best het een en ander vinden via google als ik zoek op 'exim filter to php' of 'exim passing mail to php script'.

Daar komt de oplossing die hier ook genoemd wordt, met een tussenstap via een extra mailbox ook terug, maar ook mogelijkheden via het filter gebeuren van exim, of via .procmail.

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • 0 Henk 'm!

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

@martin
En wat ga je doen als het hele domein niet bestaat ? Dan krijg je ook geen NDR.
Ik zou het inschrijf script sowieso aanpassen met de checkdnsrr functie van php mits je dat nog niet hebt. -> http://nl3.php.net/manual/en/function.checkdnsrr.php

Verder kun je volgens mij het beste de mailtjes in een speciale inbox laten komen en deze uitlezen met php en dan laten zoeken op een emailadres in die NDR

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


Acties:
  • 0 Henk 'm!

  • r0b
  • Registratie: December 2002
  • Laatst online: 14:54

r0b

Verwijderd schreef op zaterdag 09 augustus 2008 @ 13:02:
@Orion84> Exim ;)

@Eris> Dus wat jij eigenlijk bedoeld is om de mailtjes eerst naar een pop3 account om ze daarna met een PHP script op te halen? Dit PHP-script zou je dus eigenlijk dmv een cron-job elke paar minuten moeten uitvoeren om te checken op mailtjes.
Even in mijn eigen cPanel gekeken, en ik zou deze richting op kijken:
Catch-all instellen naar een te kiezen mailbox
Een email forwarder instellen via cPanel, hier heb je de optie "Pipe to a Program:"

Hiermee zou je het volgende kunnen hebben:
Je verstuurd iets via list@domain.tld, je reply-to staat op <iets>@sub.domain.tld
Alle replies naar <iets>@sub.domain.tld komen binnen op mailbox@sub.domain.tld
Alles wat binnenkomt op mailbox@domain.tld wordt automatisch gepiped naar "php /var/www/unsubscribe.php", waarbij unsubscribe.php dus uitgevoerd wordt. En vervolgens nog de verdere logica in het PHP script natuurlijk :)

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Dit heb ik zelf eens gebouwd. Die unieke code in de reply-to is niet nodig omdat er in een bounce altijd wel ergens staat waar de mail naartoe ging.

De voorgestelde dingen zijn leuk, maar wat doe je met Out of office replies?

Alles verdwijnt bij mij in dezelfde mailbox, die ik met een pop3-klasse uitlees vlak voor het versturen van de volgende mailinglist. Eerst kijk ik of het mailtje veilig is, bijvoorbeeld omdat er 'out of (the) office' in voorkomt. Daarna kijk ik of in de reply iets als 'hostmaster', 'postmaster' of 'daemon' in de headers staat, want dan is het waarschijnlijk een bounce. Daarna filter ik alle mailadressen uit de bounced mails, en verwijder ik die allemaal van de mailinglist. Er zitten nog wel wat extra tweaks in die belangrijk zijn voor de werking, maar dat wordt te lang om hier allemaal neer te zetten.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:51

Creepy

Tactical Espionage Splatterer

Eeeh. niet om het één of ander maar een bounce mail wordt naar het adres gestuurd dat staat genoemd in het return-path, niet naar het reply-to adres! Als je het return-path weglaat (wat een bug is in je eigen software!) zal de MTA zeer waarschijnlijk een return-path toevoegen met hetzelfde adres als het reply adres. Als je een return-path zet krijg je geen Out-of-office meldingen daar binnen, die gaan naar het reply adres.

En ja, vanuit PHP kan je prima (periodiek) een mailbox uitlezen (pop, imap, etc). Vervolgens zul je de mail moeten scannen naar de bekende errorcodes (500, 5.5.1 etc) en als je daar niks van terugziet dan zul je qua content nog wat meer moeten scannen (failed, error, etc).

Maaruh, ga er gewoon eens mee aan de slag? Het lijkt me nu niet dat dit zo moeilijk is dat je zelf geen begin kan maken.

@glowmouse: Als je een unieke code in het return-path gebruikt dan weet je 100% zeker dat je altijd iemand uniek kan identificeren. Het e-mail adres staat niet altijd genoemd in de bounce mail.

[ Voor 10% gewijzigd door Creepy op 09-08-2008 14:35 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • BastiaanN
  • Registratie: September 2003
  • Niet online
nevermind :P

[ Voor 96% gewijzigd door BastiaanN op 09-08-2008 15:36 ]

Strava | :-( + ┌(^0^)┘= :-)


Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Ik gebruik voor bounces 2 headers waar dan de bounces naar toe gaan:
- Return-Path: bounce@example.com
- Errors-To: bounce@example.com

Dan moet je de inkomende berichten analyseren op het bounce-adres. Het werkt niet 100%, sommige MTA's sturen bounces (onterecht) naar het Reply-to adres. Maar het meeste kan je er zo wel uithalen.

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

afgezien van het feit dat je inderdaad het bounce adres als return path dient in te stellen, pipe ik deze bounce adressen naar een php script in de aliases file onder linux:

bounce: "|php /pad/naar/script.php"

Dit kun je natuurlijk ook bereiken onder cpanel zoals Rob.. aangeeft met pipe to a program

Je kunt het ook indirect doen door een emailbox uit te lezen met je script, hiervoor dien je dan wel een cronjob in te stellen.

JayGTeam (213177)

Pagina: 1