WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Egen maillista (https://www.wn.se/forum/showthread.php?t=23383)

etanders 2007-09-04 22:59

Jag söker ett sätt att hantera maillistor för en förening. Varje medlem tillhör en eller flera grupper. Det ska nu finnas ett antal olika mailadresser/alias på vår domän, som vidarebefordrar mail till en eller flera grupper.

Ett litet exempel:
Kod:

Alias:
  styrelsen@domän.com  vidarebefordrar till gruppen Styrelsen
  prgruppen@domän.com --> PR-gruppen
  bokning@domän.com  --> Bokningsansvariga, Styrelsen
  kontakt@domän.com  --> Bokningsansvariga, PR-gruppen
  sektion1@domän.com  --> Sektion 1
  sektion2@domän.com  --> Sektion 2

Grupper:
  Styrelsen
  PR-gruppen
  Bokningsansvariga
  Sektion 1
  Sektion 2

Medlemmar:
  Ronny  ingår i Sektion 1, Bokningsansvariga
  Conny      Sektion 1, Styrelsen, PR-gruppen
  Sonny      Sektion 1
  Benny      Sektion 2, Styrelsen
  Kenny      Sektion 2, PR-gruppen, Bokningsansvariga
  Lenny      Sektion 2, Styrelsen

Varje alias vidarebefordrar mail till en eller flera grupper. Varje medlem ingår i en eller flera grupper.

Som jag ser det finns det två "enkla" möjligheter till detta. En är att använda forwarding-funktionen som webbhotellet erbjuder. Nackdelen är att man måste skriva in varje koppling alias->medlem. Det blir omständligt och svåröverskådligt redan vid ett litet antal medlemmar.

Ett annat sätt är att använda maillistor (t.ex. Mailman som finns installerat på det webbhotell vi använder). Detta är väl bättre än första alternativet, men eftersom samma medlemmar finns med i flera grupper, och varje alias kan vidarebefordra till flera grupper, måste ju informationen sparas på flera olika ställen, och det vill jag gärna undvika.

Helst skulle jag vilja ha en databasstruktur, med tabeller för alias, grupper och medlemmar, samt kopplingar däremellan. Det vore ju på många sätt det bästa. Frågan är bara hur jag i så fall kan koppla ihop det med mailservern?

Något som skulle kunna vara en lösning är att webbhotellet har alternativet "pipe to a program" där man ställer in forwarding, och det verkar som om man kan ange ett php-script där. (Skriver hellre i php än perl, men kan man skriva i Java eller C har jag inget emot det...)

Frågan nu är bara hur man kommer åt innehållet i mailet som "pipas" till scriptet. I vilken variabel ligger det? Och hur kan man testa/debugga scriptet med t.ex. echo-kommandon? Det är ju ingen webbsida som "körs"?

Någon som har erfarenhet av något liknande?

eg0master 2007-09-05 08:02

När man "pipe":ar betyder det normalt sett att det som "pipe":as kommer in på STDIN.

har aldrig jobbat med stdin i PHP, men tydligen ska man öppna den så här:
Kod:

fopen("php://stdin", 'r');

etanders 2007-09-05 23:58

Jag googlade lite och på http://www.evolt.org/article/Incomin...914/index.html hittade jag ett exempelscript som jag har utgått ifrån. Jag öppnar php://stdin och parsar innehållet i mailet. Sedan ansluter jag till mysql-databasen och försöker spara det där. Jag har gett filen rättigheterna 755 och första raden är "#!/usr/bin/php". Men när jag försöker skicka till den adress som jag "pipar" till detta script får jag bara felmeddelande tillbaka:

Citat:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

pipe to |/home/xxx/xxx/test.php
generated by [email protected]

The following text was generated during the delivery attempt:

------ pipe to |/home/xxx/xxx/test.php
generated by [email protected] ------

X-Powered-By: PHP/4.4.7
Content-type: text/html


------ This is a copy of the message, including all the headers. ------

(här följer meddelandet...)

Vad gör jag för fel? Jag har mailat supporten på webbhotellet också, men ser någon direkt något som verkar skumt?


Alla tider är GMT +2. Klockan är nu 08:41.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson