stdin...
Sziasztok!
Próbálkozom egy email fogadó cuccal phpben. Nem akarok mail szervert használni egyenlőre,találtam 2-3 megoldást neten pl:
$fd = fopen("php:\stdin", "r");
$email = addslashes(fread($fd, 102400));
fclose($fd);
if($email){
// Empty variables to avoid errors later on
$from = "";
$replyto = "";
$subject = "";
$headers = "";
$message = "";
$split = true;
// Break the e-mail into a line by line array to be put together again later on.
$lines = explode("\n", $email);
// processing the e-mail
for ($i=0; $i<count($lines); $i++) {
if ($split) {
// 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];
}
if (preg_match("/^Reply-To: (.*)/", $lines[$i], $matches)) {
$replyto = $matches[1];
}
} else {
// not a header, but message
$message .= $lines[$i]."\n";
}
if (trim($lines[$i])=="") {
// empty line, header section has ended
$split = false;
}
}
ez oké is, mert így ránézésre oké a cucc, viszont én úgy szeretném kipróbálni, h ne kelljen levelező rendszert se használnom, hanem csak egy szabványos e-mailt berekok egy txt-be és azt stdin-re irányítom.
Na ebben kellene egy kis segítség. Hol? Hogyan tudom ráirányítani a php scriptre azt a bizonyos txt-ét?
WAMP-ot használok.
köszi előre is!
■ Próbálkozom egy email fogadó cuccal phpben. Nem akarok mail szervert használni egyenlőre,találtam 2-3 megoldást neten pl:
$fd = fopen("php:\stdin", "r");
$email = addslashes(fread($fd, 102400));
fclose($fd);
if($email){
// Empty variables to avoid errors later on
$from = "";
$replyto = "";
$subject = "";
$headers = "";
$message = "";
$split = true;
// Break the e-mail into a line by line array to be put together again later on.
$lines = explode("\n", $email);
// processing the e-mail
for ($i=0; $i<count($lines); $i++) {
if ($split) {
// 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];
}
if (preg_match("/^Reply-To: (.*)/", $lines[$i], $matches)) {
$replyto = $matches[1];
}
} else {
// not a header, but message
$message .= $lines[$i]."\n";
}
if (trim($lines[$i])=="") {
// empty line, header section has ended
$split = false;
}
}
ez oké is, mert így ránézésre oké a cucc, viszont én úgy szeretném kipróbálni, h ne kelljen levelező rendszert se használnom, hanem csak egy szabványos e-mailt berekok egy txt-be és azt stdin-re irányítom.
Na ebben kellene egy kis segítség. Hol? Hogyan tudom ráirányítani a php scriptre azt a bizonyos txt-ét?
WAMP-ot használok.
köszi előre is!
Melyik változban...
Amúgy fájlt fopen()-nel tudsz fájlt beolvasni. (Nehogy azt mond megint, hogy nem segítettem, belinkeltem, ha már nem tudtad megtalálni.) Nem kell stdin-nel bohóckodni fájlbeolvasáshoz, nézd meg a példákat!
Amúgy meg szerintem IMAP-os függvényeket használj, ne pop3-assal kérjél le leveleket, mert az imap-pal a PHP-s függvényekkel szét tudod szedni az e-mailt darabokra, míg pop3 esetében ezt csak PHP-ben megírt fügvényekkel lehet (a probléma ott kezdődik, ha sok daraból áll a mail). Megírni nem fogod tudni, max. találhatsz valamelyik webmailben jó pop3-as szétszedő kódot.
re
a darabolóst meg meglesem valahol a tanácsaid alapján!
köszi
wamp
php.exe valami.php <file.txt
persze a php.exe-t teljes elérési úttal...
re