virtusertable: mail naar PHP-script

Pagina: 1
Acties:

  • Skate2000
  • Registratie: November 1999
  • Laatst online: 29-12-2024
Voor een website ben ik bezig met het maken van een systeem waarbij het mogelijk moet zijn dynamisch E-mail forwards in te stellen. Hiervoor heb ik diverse websites afgesurft, maar ik kan alleen maar vinden hoe je de table opnieuw maakt:
PHP:
1
2
3
4
5
<?php
exec('/usr/sbin/makemap hash /etc/mail/virtusertable.db < 
/etc/mail/virtusertable'); 
exit; 
?>

Maar zo wil ik het niet doen. :)
Nu moet ik nl. als 100 mensen een E-mail forward willen aanmaken, 100x dat bestand updaten en sendmailrestarten. Lijkt me niets...
Een andere mogelijkheid is het maken van een virtusertable in mySQL.
Link voor nieuwsgierige mensen Dit lijkt me ook niets, omdat er misschien nog wel meer gedaan moet worden dan alleen maar doorsturen. B)

Ik heb gehoord dat het mogelijk is in de virtusertable een verwijzing te maken naar een .php bestand.
Normaal gesproken werkt het zo:
code:
1
@rogiervandenberg.nl    rogierb

Dan wordt ieder mailtje naar de user rogierb op de server gestuurd.
Is het ook mogelijk zoiets te doen, maar dan meer op deze manier:
code:
1
@rogiervandenberg.nl    /etc/scripts/verwerkmail.php

Dan zou ik dus ik in dat PHP op een bepaalde manier (hoe weet ik nog niet) eea kunnen doen met de binnenkomende E-mail. :7

Iemand die me meer zou kunnen vertellen?

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-04 08:10

RvdH

Uitvinder van RickRAID

Volgens mij kun je niet in een virtusertable naar bestanden refereren, dat gaat toch alleen in aliases?
Wat je dan nog wel zou kunnen doen is (als je voor elk domain een aparte gebruiker hebt), entries opnemen in /etc/aliases of ~username/.forward:
code:
1
username:    "|/etc/scripts/verwerkmail.php arg1 arg2"

  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Skate2000 schreef op 07 november 2003 @ 10:24:

Maar zo wil ik het niet doen. :)
Nu moet ik nl. als 100 mensen een E-mail forward willen aanmaken, 100x dat bestand updaten en sendmailrestarten. Lijkt me niets...
Je hoeft sendmail niet te herstarten als je een map wijzigt. Die herstart is alleen nodig als je iets anders wijzigt als een mapfile of aliasesfile.
Een andere mogelijkheid is het maken van een virtusertable in mySQL.
Link voor nieuwsgierige mensen Dit lijkt me ook niets, omdat er misschien nog wel meer gedaan moet worden dan alleen maar doorsturen. B)
Die link is voor Postfix. De sendmail versie is gewoon simpelweg een mapstorage in MySQL, dus dat kan hetzelfde als de gewone fileversie.
Ik heb gehoord dat het mogelijk is in de virtusertable een verwijzing te maken naar een .php bestand.
Dat kan dus niet. rval is een lokale user, of een email adres, geen pipe.
code:
1
@rogiervandenberg.nl    /etc/scripts/verwerkmail.php
in /etc/mail/aliases :

code:
1
local_alias: "!/etc/smrsh/script argumenten"
Iemand die me meer zou kunnen vertellen?
Gewoon de maps in mysql zetten, da's het simpelste en flexibelste. In PHP verwerken kan ook, maar dan moet je ook de aflevering van de mail regelen. Niet echt handig :)

[ Voor 5% gewijzigd door igmar op 07-11-2003 10:39 ]


  • Skate2000
  • Registratie: November 1999
  • Laatst online: 29-12-2024
Gaaf, ik heb het nu voor elkaar, ik kan het mailtje dat wordt gestuurd opvangen, en hier vervolgens eea mee doen. Nu nog even experimenteren. Maar ik zocht dus gewoon fout. Ik had bij aliases moeten kijken, niet bij de virtusertable. Thnx tot dusver :)

  • Skate2000
  • Registratie: November 1999
  • Laatst online: 29-12-2024
Ok, het volgende. Ik heb het nu voor elkaar om een E-mail te zenden naar een adres. Dit adres hoort bij een mailinglist welke naar een PHP wordt gestuurd.
Als ik nu de inhoud van de mail in een DB zet, dan zie ik hier netjes het hele mailtje in verschijnen. Eigenlijk precies wat ik wil dus!

Hoe? in het "aliases"bestand:
code:
1
forward:    "|/home/rogierb/phpmail.php"


In het virtusertable bestand:
code:
1
db@domein.nl       forward


Maar als ik nu kijk naar wat er in de database staat, dan mis ik één gegeven: "db@domein.nl". Wat is dus het originele bericht? Waar is het mailtje heengestuurd? :? Dat is natuurlijk wel een belangrijk gegeven, maar blijkbaar wordt het niet meegegeven in de headers.. :+


EDIT: Mijn excuses, het werkt reeds.. :| Dank voor alles

[ Voor 7% gewijzigd door Skate2000 op 07-11-2003 14:18 ]