Das mag eine lächerliche Frage sein, aber es stört mich eine Weile. Ich habe eine E-Mail-Weiterleitung an einen PHP-Skript geleitet, es perfekt empfängt, jedoch habe ich die folgende Fehlermeldung per Post sofort zu mir zurück:Wie kann ich verhindern, dass PHP Header zurückgibt, wenn es von der Kommandozeile ausgeführt wird?
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/[webroot]/public_html/external/mobile/email.php
generated by [email protected][mydomain]
The following text was generated during the delivery attempt:
X-Powered-By: PHP/5.2.13
Content-type: text/html
Wie Sie sehen können, Exim die Header-Antwort einen Fehler aus dem Skript denkt Ich habe. Das Skript kann die Email perfekt von php: // stdin empfangen, aber Exim antwortet schnell mit dem Fehler.
Plus
- Es ist von der Konsole ausgeführt wird, nicht so HTAccess Apache oder Konfiguration Apache höchstwahrscheinlich würde nichts tun.
- Ich kann keine Lösung finden, oder jemand mit dem gleichen Problem.
Also meine Frage ist: Wie kann ich diese beiden Header loswerden?
Danke, ~ Jonny
bearbeiten, Quelle:
#!/usr/bin/php
<?php
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);
$dat = fopen(dirname(__FILE__).'/test.txt', 'w');
fwrite($dat, $email);
fclose($dat);
Soweit ich es mit php -v versucht habe, habe ich "Content-type: text/html" zurückgespuckt. Ich habe es mit der Option -q versucht und es hat immer noch die Header zurückgegeben. Exim ist immer noch ziemlich empfindlich mit ihm. – JonnyLitt
versuchen, Header hinzuzufügen ('Content-type:'); an den Anfang Ihres Skripts. Auch Checkout http://www.php.net/manual/en/function.header-remove.php –
eep, Did, das Problem ist: Ich habe kein PHP <= 5.3.0 (benötigt für Header_remove), eher Version 5.2.4. Ich kann auch nicht aktualisieren, weil ich auf einem geteilten Host bin und sie haben dagegen argumentiert, dass es in den neueren PHP-Versionen paranoid ist. – JonnyLitt