Weet iemand of het mogelijk is om een email forward script te maken

Heb hier en daar wat gegoogeld en daar vindt ik hier en daar dus wel wat maar snap niet helemaal hoe dat in zijn werk gaat en of dat wel mogelijk is met mijn hosting provider

Gebruikt iemand een email forward script

Als iemand een idee heeft graag ..

voorbeeld wat ik zoal vind heb dus alleen geen root access


#!/usr/local/bin/php -q
<?php

// get email from stdin
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);

// forward it to [email protected]
// ???
Zulke dingen moet je gewoon op de mailserver regelen, niet met PHP. Het kan wel, je kunt om de zoveel tijd je emailbox uitlezen en daar op reageren, maar dat is een onhandige constructie.
Ik heb namelijk een probleem bij mijn hosting provider

Ik kan daar emails niet filteren op het subject van de email

en aangezien de email adressen in mijn database staan dacht ik het misschien op te kunnen lossen met een php script die de emails forwarden naar het email adres wat in de database staat

Nu komen alle emails binnen in outlook en die worden geforward naar het juiste email adres alleen moet ik deze handmatig bijhouden

En het idee was op dit automatisch te laten verlopen via een script
Ik heb in het verleden iets soortgelijks gedaan, een bepaalde externe partij leverde alles aan in emailtjes ipv een nette XML of andere oplossing. Ik heb dus een script moeten schrijven om alle emailtjes op te halen en ze vervolgens in het systeem te verwerken aan de hand van het ontwerp en de inhoud van de email.

Onderstaande script is daar een stukje uit, het haalt berichten van een pop3 server op. Deze kan je vervolgens uit elkaar gaan trekken. Een nog handigere oplossing is gebruik te maken van de standaard IMAP functionaliteiten.

<?php
$server = '';
$gebruikersnaam = '';
$wachtwoord = '';

$fp = fsockopen($server,'110');

if($fp)
{
$st = fgets($fp, 512);

if(substr($st, 0, 3) == '+OK')
{
$st = 'USER '.$gebruikersnaam."\n";

if(fwrite($fp,$st) == strlen($st))
{
$st = fgets($fp, 512);

if (substr($st, 0, 3) == '+OK')
{
$st = 'PASS '.$wachtwoord."\n";

if(fwrite($fp,$st) == strlen($st))
{
$st = fgets($fp, 512);

if (substr($st, 0, 3) == '+OK')
{
$onderdelen = explode(" ", $st);
$aantal = $onderdelen[1];

echo '<p>Aantal berichten: '.$aantal.'</p>';

for($i = 1; $i <= $aantal; $i++)
{
$st = 'RETR '.$i."\n";

if(fwrite($fp,$st) == strlen($st))
{
$regel = fgets($fp,512);

while(!ereg("^\.\r\n",$regel))
{
$regel = fgets($fp,512);

//echo $regel.'<br>';
}
}

/*
$st = 'DELE '.$i."\n";

if(fwrite($fp,$st) == strlen($st))
{
$st = fgets($fp, 512);

if (substr($st, 0, 3) == '+OK')
{
echo '<p>Verwijderd van de mailserver.</p>';
}else{
echo '<p><b>Niet</b> verwijderd van de mailserver!</p>';
}
}
*/
}

$st = 'QUIT '."\n";

if(fwrite($fp,$st) == strlen($st))
{
$st = fgets($fp, 512);

if (substr($st, 0, 3) == '+OK')
{
echo '<p>Klaar!</p>';
}
}
}
}
}
}
}
}
fclose($fp);
?>

Kijk dit is top

Hartikke bedankt gaan we even me stoeien

Top man
Ik krijg het script gepost door Arjan Kapteijn niet helemaal aan de praat..

Volgens mijn hosting provider internet today zou het moeten werken

iemand een idee wat ik fout doe ??

het enigste wat ik zie is

Aantal berichten:

Klaar!




<?php
$server         = 'mail.huizenwireless.nl';
$gebruikersnaam = 'login';
$wachtwoord     = 'pass';

$fp = fsockopen($server,'110');

if($fp)
{
    $st = fgets($fp, 512);

    if(substr($st, 0, 3) == '+OK')
    {
        $st = 'USER '.$gebruikersnaam."\n";
        
        if(fwrite($fp,$st) == strlen($st))
        {
            $st = fgets($fp, 512);

            if (substr($st, 0, 3) == '+OK')
            {
                $st = 'PASS '.$wachtwoord."\n";
                
                if(fwrite($fp,$st) == strlen($st))
                {
                    $st = fgets($fp, 512);

                    if (substr($st, 0, 3) == '+OK')
                    {
                        $onderdelen = explode(" ", $st);
                        $aantal = $onderdelen[1];
                        
                        echo '<p>Aantal berichten: '.$aantal.'</p>';

                        for($i = 1; $i <= $aantal; $i++)
                        {
                            $st = 'RETR '.$i."\n";
                            
                            if(fwrite($fp,$st) == strlen($st))
                            {
                                $regel = fgets($fp,512);

                                while(!ereg("^\.\r\n",$regel))
                                {
                                    $regel = fgets($fp,512);
                                    
                                    echo $regel.'<br>';
                                    echo $onderdelen.'<br>';
                                }
                            }

                            /*
                            $st = 'DELE '.$i."\n";
                            
                            if(fwrite($fp,$st) == strlen($st))
                            {
                                $st = fgets($fp, 512);
                                
                                if (substr($st, 0, 3) == '+OK')
                                {
                                    echo '<p>Verwijderd van de mailserver.</p>';
                                }else{
                                    echo '<p><b>Niet</b> verwijderd van de mailserver!</p>';
                                }
                            }
                            */
                        }
                        
                        $st = 'QUIT '."\n";
                        
                        if(fwrite($fp,$st) == strlen($st))
                        {
                            $st = fgets($fp, 512);
                                            
                            if (substr($st, 0, 3) == '+OK')
                            {
                                echo '<p>Klaar!</p>';
                            }
                        }
                    }                                        
                }
            }
        }
    }
}
fclose($fp);
?> 

bijvraagje: zijn zo'n scripts mogelijk op hotmail accounts?
ik neem aan dat als het script werkt en hotmail is gebaseerd op pop3 dat het wel zou moeten werken maar volgens mij is hotmail geen pop3 service
Nee klopt met gmail zou het dan wel werken, daar kun je het gewoon met een email cliƫnt zoals outlook ophalen..
hotmail kan je ook linken aan outlook nochthans...
Maar het script werkt nog niet dus als iemand een ideetje heeft waarom niet
graag

Reageren