Email verwerken mbv PHP (Pipe)

Status
Niet open voor verdere reacties.

robbietjuh

Gebruiker
Lid geworden
9 nov 2008
Berichten
249
Hey helpers,

Ik ben bezig met een script om een email naar een PHP script te pipen. In de email moet een Subject, Attachment en een beschrijving van de Attachment aanwezig zijn. De Attachment mag alleen een foto of video zijn (JPG, PNG, GIF, BMP, PSD, FLV, AVI, etc.). Nu is mijn vraag hoe ik er achter kan komen wat het onderwerp (Subject) is, de inhoud van het bericht in Plain Text en wat de attachment voor naam, inhoud, extentie, etc. heeft (als die er uberhaupt is).

Iemand enig idee hoe ik achter deze gegevens kom?

PHP code voor uitlezen van bericht
PHP:
<?php
$fd = fopen("php://stdin", "r");
$content = "";
while(!feof($fd))
{
     $content .= fread($fd, 1024);
}
fclose($fd);
?>

Alvast bedankt,
Robert
 
Hallo.

Niemand een idee?
Ik dacht.zelf aan splitten naar array alleen lijkt mij dat erg slordig.

Iemand suggesties of een oplossing?

Met vriendelijke groet,
Robert
 
Als het script slordig is maakt dat niet uit, als de uitvoer dat maar niet is.
 
Ik ben ook nog maar 15... Maar het gaat toch niet om een net script?
Het zou een probleem zijn als de uitvoer slordig wordt, dan krijgen verschillende browsers er problemen mee.
PHP heeft standaarden, dus dan is het geen probleem.
@ts: Is de uitvoer netjes?
 
Slordige scripts zijn leuk en aardig, tot je ze wil wijzigen en/of ze meer dan 100 regels beslaan, daarna ben je vooral jezelf in je voet aan het schieten.

Anyway.. ik weet helaas niet veel van mail inlezen af dus ik zie nog niet helemaal wat je probeert te doen :( Is er geen library om mail op deze manier te lezen ergens?
 
Splitten naar een array werkt prima, doe ik ook met php rcon's(remote control voor serverbeheer in games). Nog nooit de verkeerde gekicked!
 
Ik ben ook nog maar 15...
Dus? Ik ben 13...

Maar het gaat toch niet om een net script?
Het zou een probleem zijn als de uitvoer slordig wordt, dan krijgen verschillende browsers er problemen mee.
PHP heeft standaarden, dus dan is het geen probleem.
Bad! Een script moet altijd zo net mogelijk zijn. Op die manier zorg je ervoor dat de server een lage load houd en dat het script overzichtelijk en sneller word uitgevoerd. Overigens, dit script stuurt niets naar de browser. Als er een email binnenkomt op bijv. test@example.com, dan word die email verwerkt met het PHP script, niet de standaard software daarvoor. Er komt dus geen handeling met een browser in voor!

Ik las een stukje verder boven dit bericht dat het niet duidelijk was wat nou echt de precieze bedoeling is. Om het heel simpel te zeggen:

De emails die binnenkomen op een bepaald emailadres worden doorgestuurd naar een PHP script. Het PHP script leest de hele email uit (incl. de headers, etc.) zoals in de code in mijn eerste bericht. Daarna is het de bedoeling dat het PHP script...
1. Controleerd of er een attachment aanwezig is
2. Zo ja, kijken of het type attachment is toegestaan
3. Wanneer toegestaan, moet de naam van de attachment in de database worden gezet en moet de inhoud van de attachment worden weggeschreven in een bestand in de www-data map
4. Hierna moet het mogelijk zijn om de media (attachment) te zien vanuit de webbrowser via bijvoorbeeld http://example.com/afbeeldingen/hier_attachment_naam.jpg

Is het duidelijk?
Ik wil wel dat het veilig, en niet erg belastend is voor de server. Dus weet ik niet of splitten in een array veilig genoeg is, aangezien niet elke email client een email op de zelfde manier verstuurd (sommige voegen extra headers toe bijvoorbeeld).

Met vriendelijke groeten,
Robert
 
Laatst bewerkt:
Was tegen SvU bedoeld;).

Overigens, dit script stuurt niets naar de browser. Als er een email binnenkomt op bijv. **@**.nl , dan word die email verwerkt met het PHP script, niet de standaard software daarvoor.

Ik zeg toch juist dat dit niet zo is?

Server load krijg je toch wel als je een attachment wilt downloaden (van de mailserv), helemaal wilt door( laten )lezen en het attachment wilt kopieren, die seconde zul je niet snel merken.

Kijk op http://nl2.php.net/imap voor php-mail tutorials.
Hiervoor zou je nogal wat tijd moeten uittrekken, en daar is helpmij niet voor bedoeld(als je het zelf kunt), aan je berichten is af te lezen dat je wel ervaring hebt.

Probeer het zelf even, als je vastloopt kunnen we je altijd nog verder helpen!
 
Ik ben ook nog maar 15... Maar het gaat toch niet om een net script?
Het zou een probleem zijn als de uitvoer slordig wordt, dan krijgen verschillende browsers er problemen mee.
PHP heeft standaarden, dus dan is het geen probleem.
@ts: Is de uitvoer netjes?

Leeftijd heeft daar niets mee te maken. Programmeren gaat voor 30% om uitkomst, maar voor 70% om onderhoudbaarheid (en aanverwante eigenschappen van software). Dat heeft alles te maken met netjes programmeren. Dat zul je nog wel merken als je wat ouder bent, om in de leeftijdtrant te blijven. ;)
 
Maar splitten naar een array is toch niet heel slordig?

Het splitten zelf niet, maar de rest wel.
Niet elke email client stuurt dezelfde content, en dan kun je grote fouten maken bij het verhandelen van de splitjes...
 
Japs, daarom wil ik het ook op een andere, veilige manier doen. Ik kan uiteraard wel controleren op het begin van de strings, om zo achter de "Subject:" header te komen, maar het bericht, en de inhoud van de attachment, hebben geen Header-title aanduiding waardoor die dingen dus weer in de soep lopen... Erg lastig probleem, ik kom er zelf niet echt uit...

Met vriendeljke groeten,
Robert
 
Zoals je psm zegt, everything is possible.
Kun je mensen niet een mail laten sturen via je website?
zo heb je een standaard indeling en kun je alles splitten naar een array.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan