Kom ihåg mig?
Home Menu

Menu


Rätt radbrytning i PHP mail() headers \r\n eller bara \n ??

 
Ämnesverktyg Visningsalternativ
Oläst 2010-06-19, 08:57 #11
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Felet du får är

"Illegal MIME chars found in header:
<From: "N.nu Support" <[email protected]>__>"

Koden du postade i ditt första inlägg saknar två st. avslutande CRLF innan ditt innehåll.
Vad "__>" menas med är svårt för mig att avgöra (jag använder inte Postfix) men kanske är det just där som felet ligger (i den koden som du faktiskt använder i scriptet) eller så visar dom bara en del av headern där felet ligger..

Testa detta och se om det gör skillnad..
PHP-kod:
<?php
$header 
"From: \"Namn\" <[email protected]>\r\n";
$header.= "Reply-To: <[email protected]>\r\n";
$header.= "Content-Type: text/plain; charset=utf-8\r\n";
$header.= "\r\n";
$header.= "Detta är ett meddelande i textformat";

mail("[email protected]""Subject"""$header);
?>
Standarden säger att alla _headers_ i ett meddelande skall avslutas med CRLF (alltså \r\n) så det skall du alltid använda.

Senast redigerad av Jake.Nu den 2010-06-19 klockan 09:06
Jake.Nu är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-19, 09:17 #12
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Använd bara \n , då får du flest "fungerade" mail. Även om man egentligen borde följa RFC:n så gör inte PHP själva det. Syns i källkoden till PHP (mail.c):
Kod:
		fprintf(sendmail, "To: %s\n", to);
		fprintf(sendmail, "Subject: %s\n", subject);
		if (headers != NULL) {
			fprintf(sendmail, "%s\n", headers);
		}
		fprintf(sendmail, "\n%s\n", message);
De lägger på \n och inte \r\n.
För det mesta är PHP-manualen bra men i just detta fall är den lite missvisande.

OBS! Jag pratar om PHP som körs på Linux servrar.

Senast redigerad av SimonP den 2010-06-19 klockan 09:26
SimonP är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-19, 13:03 #13
abergmans avatar
abergman abergman är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Feb 2010
Inlägg: 762
abergman abergman är inte uppkopplad
Mycket flitig postare
abergmans avatar
 
Reg.datum: Feb 2010
Inlägg: 762
Citat:
Ursprungligen postat av jonny Visa inlägg
I normalfallet ska faktiskt "\n" även omfatta "\r".
Jag uppfattar för övrigt texten om "Some poor quality Unix mail transfer agents replace LF by CRLF automatically (which leads to doubling CR if CRLF is used)." som att det är ett problem med AVSÄNDANDE MTA och inte mottagande.
Jag har uppfattat det likadant, jag vill dock hävda att postfix inte borde gå under kategorin "poor quality", så man kan ju tycka att det inte borde vara ett problem.

Men som man sagt några inlägg tidigare, phpmailer löser det
abergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-19, 22:03 #14
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Det intressanta är väl att "\n" ska tolkas som "new line" vilket bör översättas till CR (Carriage Return) och LF (Line Feed) automatiskt.
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-19, 22:11 #15
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Citat:
Ursprungligen postat av jonny Visa inlägg
Det intressanta är väl att "\n" ska tolkas som "new line" vilket bör översättas till CR (Carriage Return) och LF (Line Feed) automatiskt.
\n ska väl tolkas som ASCII 10 (vilket motsvarar LF/Line Feed).
\r tolkas som ASCII 13 (CR/Carriage Return)

När jag har använt PHP:s inbyggda mailfunktion så har jag kört med \r\n och det har funkat prima. Har iofs. testat båda varianter och det har funkat.

Jag kan rekommendera PHPMailer, som skall sköta detta med headers automatiskt, och förhoppningsvis inte med PHP:s inkonsekventa användning.
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-21, 12:02 #16
Jim_Westergrens avatar
Jim_Westergren Jim_Westergren är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2005
Inlägg: 1 058
Jim_Westergren Jim_Westergren är inte uppkopplad
Har WN som tidsfördriv
Jim_Westergrens avatar
 
Reg.datum: May 2005
Inlägg: 1 058
Hej!

Jäkla bra forum. Skriver en svår fråga en fredag eftermiddag och man är tillbaka på jobb på måndag med en massa bra svar och input, suveränt.

Jag har kollat lite närmare nu. Har totalt fått 3 sådana är studsade mails sedan jag började kolla upp vilka mails som studsar och alla dessa 3 kommer från softcom.dk.

Tittade lite på PHPMailet och det är verkligen intressant, speciellt eftersom jag nu snart vill använda HTML i mina nyhetsbrev. Håller just på att sätta min i det. Den funkar väl med postfix som jag använder nu?
Jim_Westergren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-21, 12:07 #17
studiox studiox är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2004
Inlägg: 1 356
studiox studiox är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2004
Inlägg: 1 356
Citat:
Ursprungligen postat av Jim_Westergren Visa inlägg
Hej!

Jäkla bra forum. Skriver en svår fråga en fredag eftermiddag och man är tillbaka på jobb på måndag med en massa bra svar och input, suveränt.

Jag har kollat lite närmare nu. Har totalt fått 3 sådana är studsade mails sedan jag började kolla upp vilka mails som studsar och alla dessa 3 kommer från softcom.dk.

Tittade lite på PHPMailet och det är verkligen intressant, speciellt eftersom jag nu snart vill använda HTML i mina nyhetsbrev. Håller just på att sätta min i det. Den funkar väl med postfix som jag använder nu?
PHPMailer fungerar med både en lokal MTA och en extern SMTP server (även på Linux, vilket Mail() inte klarar av, en av anledningarna jag gillar det)

Postfix är ju även "sendmail kompatibel"
studiox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-21, 13:14 #18
Jim_Westergrens avatar
Jim_Westergren Jim_Westergren är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2005
Inlägg: 1 058
Jim_Westergren Jim_Westergren är inte uppkopplad
Har WN som tidsfördriv
Jim_Westergrens avatar
 
Reg.datum: May 2005
Inlägg: 1 058
Laddade ner deras Lite version (behöver inte SMTP) och gjorde en liten test till mig själv, det funkade direkt. Tack!
Jim_Westergren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-22, 11:23 #19
Jim_Westergrens avatar
Jim_Westergren Jim_Westergren är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2005
Inlägg: 1 058
Jim_Westergren Jim_Westergren är inte uppkopplad
Har WN som tidsfördriv
Jim_Westergrens avatar
 
Reg.datum: May 2005
Inlägg: 1 058
Tänkte återkomma här med uppdatering för de som är intresserade.

- Implementeringen av PHPMailer Lite var mycket enklare än jag trodde. Gjorde även en enkel HTML-mall som jag nu använder i mailen - ser mycket snyggare ut och funkar väldigt bra.

- Fick lite fler negativa poäng av spam assasin pga HTML men det var så lite så inget att oroa sig för.

- Jag skickade välkomstmailet med verifieringskod till mina 3 användare som har mail via softcom.dk och nu studsar de inte längre vilket är jättebra.

- Gissa vilken radbrytning PHPMailer använder som default? Endast \n och inte \r\n ...

- Känns tryggt att använda en klass som tusentals andra använder.

Tack för knuffen från er som fick mig att gå över till PHPMailer.
Jim_Westergren är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017