Toon posts:

[PHP] SMTP / POP3 proxy

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb een idee maar weet bij god niet of het kan.

Ik wil op de een of andere manier ervoor zorgen dat als er gemaild wordt vanuit een e-mailclient dat er een phpscript dit opvangt er een paar acties mee uitvoerd en vervolgens e-mailt.

Kan ik niet als uitgaande server bijvoorbeeld: http://localhost/smtp.php opgeven en http://localhost/pop3.php.

Nu heb ik gezocht maar weinig gevonden. In een topic geeft Spider.007 aan dat dit kan domein met POP3-email zelf maken echter zou ik graag meer bronnen hierover hebben.

Acties:
  • 0 Henk 'm!

Verwijderd

Een mogelijkheid is om een php file aanmaken met daarin volgende handelingen:
-> via IMAP de inhoud van de mailbox ophalen
-> Checken via de imap_fetch_overview of het bericht al gelezen is
-> Indien niet, de body/bijlagen ed ophalen en verwerken

Vervolgens kan je dan dat script door een cron job laten runnen, bijvoorbeeld ieder halfuurtje.

(php IMAP functions)

Hopelijk ben je d'r iets mee.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 22-09 15:11
Nee, je kunt een PHP-script niet als mailserver laten draaien. Sowieso is PHP niet bedoeld om eindeloos in een loop te blijven draaien, en ook kun je geen luisterende poorten openen.

Wel kun je, zoals Smoerf zegt, PHP gebruiken om een email-box uit te lezen. Kijk eens naar www.php.net/imap

Acties:
  • 0 Henk 'm!

  • Huppie
  • Registratie: Mei 2003
  • Laatst online: 02-09 09:59
frickY schreef op maandag 07 november 2005 @ 07:47:
Nee, je kunt een PHP-script niet als mailserver laten draaien. Sowieso is PHP niet bedoeld om eindeloos in een loop te blijven draaien, en ook kun je geen luisterende poorten openen.
Waar PHP precies voor bedoeld is of niet ga ik maar even niet op in. Maar je kunt wel degelijk socket-servers bouwen (dus als je wilt van mijn part een complete mailserver). Luisterende poorten kunnen niet? Sinds wanneer?

Ik dacht me te kunnen herrinneren dat er op Zend ergens een tutorial stond :)

Probeer anders eens te googlen voor "PHP socket server" of iets dergelijks ;)

Proud member of TCF - D2OL is zooooo 2005


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Huppie schreef op maandag 07 november 2005 @ 09:04:
[...]

Waar PHP precies voor bedoeld is of niet ga ik maar even niet op in. Maar je kunt wel degelijk socket-servers bouwen (dus als je wilt van mijn part een complete mailserver). Luisterende poorten kunnen niet? Sinds wanneer?

Ik dacht me te kunnen herrinneren dat er op Zend ergens een tutorial stond :)

Probeer anders eens te googlen voor "PHP socket server" of iets dergelijks ;)
De enoige nuttige reactie :+ De rest krijg ik weer het standaard verhaal te horen over uitlezen van een mailbox. Ik wil echter ook verzonden mail kunnen verwerken in php. En dit betreft verzonden mail via een e-mailclient.

Linkje van Zend gevonden: http://www.zend.com/pecl/tutorials/sockets.php

[ Voor 6% gewijzigd door Verwijderd op 07-11-2005 09:12 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Verwijderd schreef op maandag 07 november 2005 @ 09:10:
De enoige nuttige reactie :+ De rest krijg ik weer het standaard verhaal te horen over uitlezen van een mailbox.
Het is danook niet echt iets waar je normaal PHP voor wil gebruiken. Een SMTP server bouwen in PHP is nogal omslachtig nl. Wat je beter kunt doen is een bestaande SMTP server gebruiken
Ik wil echter ook verzonden mail kunnen verwerken in php. En dit betreft verzonden mail via een e-mailclient.
Je wil dus een SMTP daemon welke e-mailtjes ontvangt, deze bewerkt, en dan verder verstuurd. Waarom gebruik je dan geen bestaande SMTP deamon? Qmail-smtpd bijvoorbeeld kan incoming messages pipen naar elke proces dat maar draait. Het enige wat dat proces dan hoef te doen is dit bewerken en 't dan verder te verschepen.

https://niels.nu


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hydra schreef op maandag 07 november 2005 @ 18:13:
[...]


Het is danook niet echt iets waar je normaal PHP voor wil gebruiken. Een SMTP server bouwen in PHP is nogal omslachtig nl. Wat je beter kunt doen is een bestaande SMTP server gebruiken


[...]


Je wil dus een SMTP daemon welke e-mailtjes ontvangt, deze bewerkt, en dan verder verstuurd. Waarom gebruik je dan geen bestaande SMTP deamon? Qmail-smtpd bijvoorbeeld kan incoming messages pipen naar elke proces dat maar draait. Het enige wat dat proces dan hoef te doen is dit bewerken en 't dan verder te verschepen.
Zou graag willen dat dit op een virtual host werk. Zodat ik geen extra eisen moet stellen.

Het is niet de bedoeling een smtp server te bouwen in php. Wil alleen dat php de verzonden mail in een database propt. Het versturen kan dan middel mail();

Als iemand een andere manier weet om verzonden e-mailtjes automatisch in een database te stoppen (met als voorwaarde dat het op een uniforme (lees het moet werken bij de hoster)) dan hoor ik het ook graag

[ Voor 21% gewijzigd door Verwijderd op 07-11-2005 19:08 ]


Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 22:00

orf

Pipen kan meestal ook gewoon vanuit je control panel (als je dat hebt). Pipen is de mooiste oplossing denk ik. Het PHP script wordt dan pas ge-execute wanneer er een mailtje binnen komt en hoeft niet als proces of op cron te draaien.

Hier staat het één en ander uitgelegd. Als je Direct Admin als CP hebt, kun je vervolgens even op het DA forum zoeken naar Pipen.
http://www.evolt.org/article/Incoming_Mail_and_PHP/18/27914/

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
orf schreef op maandag 07 november 2005 @ 20:22:
Pipen kan meestal ook gewoon vanuit je control panel (als je dat hebt). Pipen is de mooiste oplossing denk ik. Het PHP script wordt dan pas ge-execute wanneer er een mailtje binnen komt en hoeft niet als proces of op cron te draaien.

Hier staat het één en ander uitgelegd. Als je Direct Admin als CP hebt, kun je vervolgens even op het DA forum zoeken naar Pipen.
http://www.evolt.org/article/Incoming_Mail_and_PHP/18/27914/
Dankje! Dit vangt alleen het verzenden van mail vanuit een e-mailclient niet op. Alleen ontvangen e-mails.

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 22:00

orf

Maar dan kun je toch een e-mail account aanmaken (script@domein.nl) dat ge-pipet wordt naar het script? Het script plaatst het bericht in de database en stuurt de ruwe e-mail door naar een normaal account?

Of begrijp ik het niet?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
orf schreef op maandag 07 november 2005 @ 20:45:
Maar dan kun je toch een e-mail account aanmaken (script@domein.nl) dat ge-pipet wordt naar het script? Het script plaatst het bericht in de database en stuurt de ruwe e-mail door naar een normaal account?

Of begrijp ik het niet?
Waarschijnlijk ik niet ;-)

Hoe ga ik dan om met de normale geadresseerden? De to/cc/bcc velden zijn nu dus in gebruik door de script@domein.nl variabele?

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op maandag 07 november 2005 @ 21:47:
Waarschijnlijk ik niet ;-)

Hoe ga ik dan om met de normale geadresseerden? De to/cc/bcc velden zijn nu dus in gebruik door de script@domein.nl variabele?
Jij hebt een php-script draaien wat alle mail van iets@domain.tld uitleest en in een database pompt. Dus zodra iemand er naartoe mailt dan krijg jij 1 mailtje binnen van de mailserver. De bcc/cc/c velden heb je in dat geval helemaal niets mee te maken. Als je die mensen opnieuw de mail gaat sturen dan krijgen ze hem 2x. Het versturen naar de c/cc/bcc velden dat heeft de voorliggende mailserver al gedaan, zodra die mail binnen krijgt stuurt hij het oa naar iets@domain.tld. Maar ook naar alle c/cc/bcc'ers.
Hopenlijk heb ik het duidelijk genoeg geschreven. :+

Een echte proxy bouwen "lijkt" me vrij moeilijk als je geen jobs continu kan laten draaien. Dan zit je toch echt vast aan de bovenstaande setup (mailen naar iets@domain.tld en dan via php dat relayen).

Je kan trouwens ook email sturen als iemand anders, dat is zo moeilijk niet. Alleen vraag je dan af of de ontvangende mailservers dat wel gaan accepteren ivm anti-spamservers (die "kunnen" checken of de verzendende server wel bij het zelfde domain als in de email staat behoord).

[ Voor 13% gewijzigd door Verwijderd op 07-11-2005 22:08 ]

Pagina: 1