/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Problemer med mail headers i PHP
Fra : D


Dato : 28-01-07 22:24

Efter jeg har skiftet fra FreeBSD, har jeg fået problemer når jeg udsender
emails fra min Apache/PHP. Den indsætter ganske enkelt alle header
oplysninger direkte i emailen, hvilket jo er helt forkert. Jeg har været på
PHP manual siden og fundet dette:

additional_headers (optional)
Note: If messages are not received, try using a LF (\n) only. Some poor
quality Unix mail transfer agents replace LF by CRLF automatically (which
leads to doubling CR if CRLF is used). This should be a last resort, as it
does not comply with RFC 2822.

Dette løste mit problem og mailen kommer nu til at se rigtig ud. Jeg kunne
selvfølgelig gå i gang med at rette alle mine PHP filer således, at de
istedet for \r\n kun har \n men der må da være en bedre og mere rigtig måde
at løse det på? Jeg køre Postfix.

Virker ikke (med de korrekte \r\n):
subject = "Kommantar";
$message = "Email .. blaaa\n\nBlaa.....";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: Webpage <somewhere@xyz.xyz\r\n";
$headers .= "X-Priority: 0\r\n";
$headers .= "X-MSMail-Priority: Normal\r\n";
$headers .= "X-Mailer: ".phpversion();
mail($to_email, $subject, $message, $headers);

Virker OK (kun med \n):
subject = "Kommantar";
$message = "Email .. blaaa\n\nBlaa.....";
$headers = "MIME-Version: 1.0\n";
$headers .= "From: Webpage <somewhere@xyz.xyz\n";
$headers .= "X-Priority: 0\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: ".phpversion();
mail($to_email, $subject, $message, $headers);



 
 
Thorbjørn Ravn Ander~ (28-01-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 28-01-07 22:48

"D" <d@REMOVE.invalid.xyz> writes:

> Dette løste mit problem og mailen kommer nu til at se rigtig ud. Jeg kunne
> selvfølgelig gå i gang med at rette alle mine PHP filer således, at de
> istedet for \r\n kun har \n men der må da være en bedre og mere rigtig måde
> at løse det på? Jeg køre Postfix.

Under Unix er det der skiller to linier kun en \n.
--
Thorbjørn Ravn Andersen

D (28-01-2007)
Kommentar
Fra : D


Dato : 28-01-07 22:58

>> Dette løste mit problem og mailen kommer nu til at se rigtig ud. Jeg
>> kunne
>> selvfølgelig gå i gang med at rette alle mine PHP filer således, at de
>> istedet for \r\n kun har \n men der må da være en bedre og mere rigtig
>> måde
>> at løse det på? Jeg køre Postfix.
>
> Under Unix er det der skiller to linier kun en \n.

Det var en FreeBSD også sidst jeg checkede Men jeg antager at det er min
Postfix den er gal med (på FreeBSD kørte jeg Sendmail)?

Citat:
additional_headers (optional)
Note: If messages are not received, try using a LF (\n) only. Some poor
quality Unix mail transfer agents replace LF by CRLF automatically (which
leads to doubling CR if CRLF is used). This should be a last resort, as it
does not comply with RFC 2822.



Thorbjørn Ravn Ander~ (28-01-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 28-01-07 23:28

"D" <d@REMOVE.invalid.xyz> writes:

> Det var en FreeBSD også sidst jeg checkede Men jeg antager at det er min
> Postfix den er gal med (på FreeBSD kørte jeg Sendmail)?

Det er da en definitionssag om \r er et linieskift eller ej (det var
det nemlig på OS 9 i gamle dage).

I mine øjne er din kode syg når du angiver begge tegn.

> Note: If messages are not received, try using a LF (\n) only. Some poor
> quality Unix mail transfer agents replace LF by CRLF automatically (which
> leads to doubling CR if CRLF is used). This should be a last resort, as it
> does not comply with RFC 2822.

Ja, og en masse blah. Det korte af det lange, er at du skal have en
tom linie mellem headerne og brødteksten, og at linieskift skal være
\n.

--
Thorbjørn Ravn Andersen

Søg
Reklame
Statistik
Spørgsmål : 177548
Tips : 31968
Nyheder : 719565
Indlæg : 6408799
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste