Avatar billede m_bold Praktikant
08. november 2007 - 22:58 Der er 7 kommentarer og
1 løsning

\r\n virker ikke på alle servere - gør \n

Hej.

Efter at have skiftet serverudbyder, har jeg konstateret at nogle Unix servere ikke kan håndtere \r\n bl.a. i mail udsendelser som dette er et udpluk fra:

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

Men hvis man ændrer \r\n til \n så går det bedre. Mit spørgsmål er: Virker \n så på alle servere? Jeg vil jo gerne have en universel løsning.
Avatar billede hmortensen Nybegynder
09. november 2007 - 00:14 #1
\n = Linux
\r\n = Windows
\r = MacOS

Du kan via server variablerne kontrollere operativsystem, og derved sætte den pågældende værdi.
Avatar billede nielle Nybegynder
09. november 2007 - 06:53 #2
Men i standarden for emails er det mig bekendt specificeret at hver linje i headeren skal afluttes med \r\n - uanset hvilket OS den afsendes fra.
Avatar billede m_bold Praktikant
09. november 2007 - 08:53 #3
--> hmortensen.

I min phpinfo() hos One.com står der flg.:
System  Linux srv23 2.6.12.6-vs2.0 #1 SMP...

Den fungerer fint med \r\n.

I min phpinfo() hos activewebs står der:
System  Linux server091.server.activewebs.dk 2.6.18-5-686 #1...

Den fungerer kun med \n.

Burde det ikke være samme situation?
Avatar billede majbom Novice
09. november 2007 - 09:57 #4
jeg havde problemer med at sende mails på grund af jeg ikke brugte den rigtige endelse, så jeg fik løsningen herinde:

brug PHP_EOF i stedet for "\n" eller "\r\n" - så bruge den den rigtige ift serverens opsætning
Avatar billede m_bold Praktikant
09. november 2007 - 18:12 #5
--> splazz - kan du udbyde, hvordan man gør det? Jeg kender overhovedet ikke PHP_EOF. Har du evt. et link?
Avatar billede majbom Novice
09. november 2007 - 19:25 #6
det skal selvfølgelig være EOL (End Of Line) og ikke EOF (End Of File) :)

ret:

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

til:

$headers  = "MIME-Version: 1.0".PHP_EOL;
$headers .= "Content-type: text/html; charset=iso-8859-1".PHP_EOL;
Avatar billede m_bold Praktikant
04. januar 2008 - 08:02 #7
splazz --> det virker perfekt, smider du et svar?
Avatar billede majbom Novice
04. januar 2008 - 12:40 #8
ja det er jo det det gør ;)

svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Politiets Efterretningstjeneste

IT Sikkerhedsarkitekt i PET

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Tech Lead til Datacenter Operations

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger en Unified Communications specialist i Hvidovre