Toon posts:

[php] Mail forward naar php script doorsturen lukt niet goed

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

ik heb een .forward bestand aangemaakt op een linux server met sendmail om zo mijn mail op te vangen met een PHP script.

Ik wil het subject controleren op een bepaald woord en als dit voorkomt, de mail doorsturen, anders niet.

Dit gaat allemaal goed, behalve het doorsturen.

Als ik met bv. outlook een html mail stuur met plaatjes e.d. wordt het een multipart mail, en als ik deze doorstuur krijg ik de broncode in mijn mail.

zo parse ik de mail (gevonden op internet).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// read from stdin
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd)) {
    $email .= fread($fd, 1024);
}
fclose($fd);

// handle email
$lines = explode("\n", $email);

// empty vars
$from = "";
$subject = "";
$headers = "";
$message = "";
$splittingheaders = true;

for ($i=0; $i < count($lines); $i++) {
    if ($splittingheaders) {
        // this is a header
        $headers .= $lines[$i]."\n";

        // look out for special headers
        if (preg_match("/^Subject: (.*)/", $lines[$i], $matches)) {
            $subject = $matches[1];
        }
        if (preg_match("/^From: (.*)/", $lines[$i], $matches)) {
            $from = $matches[1];
        }
    } else {
        // not a header, but message
        $message .= $lines[$i]."\n";
    }

    if (trim($lines[$i])=="") {
        // empty line, header section has ended
        $splittingheaders = false;
    }
}


Dat gaat dus goed. Ik heb nu $subject om deze te checken op het woord.
Nu wil ik de mail verder in originele staat doorsturen, maar dat wil maar niet lukken.

Kan iemand me verder helpen, ik kom er niet echt meer uit.

Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Als dit het enige is dat je wilt doen (op Subject en From checken), dan kan je misschien beter eens naar procmail kijken. Daar kan je hetzelfde bereiken, maar dan in een of twee regels ;)