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-18, 17:15 #1
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
Standard Rätt radbrytning i PHP mail() headers \r\n eller bara \n ??

Blir inte klok på detta. Överrallt (php.net osv) står det att man ska använda sig av \r\n och jag använder följande headers:

PHP-kod:
$signup_email_headers "From: \"Ett namn\" <namn@domän.se>\r\n";
$signup_email_headers .= "Reply-To: \"Ett namn\" <namn@domän.se>\r\n";
$signup_email_headers .= "Content-Type: text/plain; charset=utf-8"
Men då studsar vissa mails efter ett jäkla Googlande hittade jag denna sida av en annan som har precis samma problem som jag http://www.eksperten.dk/spm/754761

Jag testade att ändra \r\n till \n och då kom mitt mail fram. Så vad ska man använda??

Någon som har erfarenhet av detta?

Här ett utdrag av headers och felmeddelande (vilket klagar på fel sak):

Citat:
This is the mail system at host mail.n.nu.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

<[email protected]>: host deframx02.softcom.dk[80.237.211.116] said: 552
Unable to process message: msg.1276870204.703308.20259 - error: Illegal
MIME chars found in header: <From: "N.nu Support" <[email protected]>__> (in
reply to end of DATA command)

--56E64140CF02.1276870204/mail.n.nu
Content-Description: Delivery report
Content-Type: message/delivery-status

Reporting-MTA: dns; mail.n.nu
X-Postfix-Queue-ID: 56E64140CF02
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Fri, 18 Jun 2010 16:10:04 +0200 (CEST)

Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.0.0
Remote-MTA: dns; deframx02.softcom.dk
Diagnostic-Code: smtp; 552 Unable to process message:
msg.1276870204.703308.20259 - error: Illegal MIME chars found in header:
<From: "N.nu Support" <[email protected]>__>

--56E64140CF02.1276870204/mail.n.nu
Content-Description: Undelivered Message
Content-Type: message/rfc822

Received: by mail.n.nu (Postfix, from userid 33)
id 56E64140CF02; Fri, 18 Jun 2010 16:10:04 +0200 (CEST)
To: [email protected]
Subject: Din sida www.ensajt.n.nu
From: "N.nu Support" <[email protected]>
Reply-To: "N.nu Support" <[email protected]>
Content-Type: text/plain; charset=utf-8
Message-Id: <[email protected]>
Date: Fri, 18 Jun 2010 16:10:04 +0200 (CEST)

Hej!
Jim_Westergren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-18, 17:45 #2
Erik Stenman Erik Stenman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2007
Inlägg: 2 154
Erik Stenman Erik Stenman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2007
Inlägg: 2 154
Använder du linux?
Jag använder:
Citat:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
//$headers .= 'To: '.$name.' <'.$to.'>' . "\r\n";
$headers .= 'From: '.$from.' <'.$frommail.'>' . "\r\n";
Erik Stenman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-18, 17:57 #3
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
anders.n anders.n är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 113
http://php.net/manual/en/function.mail.php

Citat:
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.
anders.n är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-18, 18:23 #4
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
Erik, ja Linux med Debian. Jag skickar med postfix. Ja du använder ungefär samma som jag.

Anders, där citerade du helt rätt. Såg inte det innan. Men jag kommer inte att ha möjlighet att gå igenom de mails som studsar för att skicka om de med endast \n. Ska jag fortsätta köra med \r\n ? Be folk som inte får mail att byta till gmail?

Finns det någon procentsiffra av hur många som har detta problemet?
Jim_Westergren är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-18, 19:00 #5
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 Jim_Westergren Visa inlägg
Erik, ja Linux med Debian. Jag skickar med postfix. Ja du använder ungefär samma som jag.

Anders, där citerade du helt rätt. Såg inte det innan. Men jag kommer inte att ha möjlighet att gå igenom de mails som studsar för att skicka om de med endast \n. Ska jag fortsätta köra med \r\n ? Be folk som inte får mail att byta till gmail?

Finns det någon procentsiffra av hur många som har detta problemet?
Jag skulle starkt råda dig att ALLTID följa Standard, då kan du alltid skylla på mottagaren ifall det inte funkar.

Det är alltid i mottagarens intresse att kunna ta emot alla mail, det du kan göra är ju att maila postmastern och säga att de kanske behöver uppdatera sin mjukvara då den inte följer webbstandard.

Om alla följde de standarder som finns, så skulle webben varit jävligt mycket enklare att jobba med.

EDIT Glöm vad jag sa om att maila postmastern, mailet som studsar mailtvättas av Softscan i danmark, en av världens ledande mailtvättsleverantörer. Lycka till att få igenom en ändring där
abergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-18, 19:05 #6
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 abergman Visa inlägg
Jag skulle starkt råda dig att ALLTID följa Standard, då kan du alltid skylla på mottagaren ifall det inte funkar.

Det är alltid i mottagarens intresse att kunna ta emot alla mail, det du kan göra är ju att maila postmastern och säga att de kanske behöver uppdatera sin mjukvara då den inte följer webbstandard.

Om alla följde de standarder som finns, så skulle webben varit jävligt mycket enklare att jobba med.

EDIT Glöm vad jag sa om att maila postmastern, mailet som studsar mailtvättas av Softscan i danmark, en av världens ledande mailtvättsleverantörer. Lycka till att få igenom en ändring där

Pågarna på WP har som vanligt koll, prova med PHPmailer istället.

http://core.trac.wordpress.org/ticket/2603





EDIT

Det här var ett spännande problem.. Hur ser din php.ini ut på din maskin? Leta efter raden sendmail_path

Som jag fattar det så beror det på översättningen mellan php och sendmail/postfix.. På *nix ska det vara \n och på Windows \r\n som "line ending", då man inte egentligen inte vill ha en radbrytning på en header, utan bara ett avslut på raden så att säga.


EDIT 2:

http://bryanmills.net/archives/2007/...-php-and-spam/

Förklarar problemet med Postfix och att maila från PHP samt en lösning.

Senast redigerad av abergman den 2010-06-18 klockan 19:35
abergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-18, 20:15 #7
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
Jag testade själv med att maila från en maskin till en annan, båda två kör postfix och jag har inga spamskydd på dem.

Dock så fungerade både \r\n och \n bra, den tolkade headern rätt både gångerna. Testade även med ett Gmail konto och jag fick samma resultat där.

Så jag kan inte återskapa ditt fel
abergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-18, 20:18 #8
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
1. Ta ett djupt andetag
2. Ladda ner phpmailer
3. Klart
studiox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-18, 20:44 #9
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
PHPMailer löser biffen åt dig.


Annars använd konstanten PHP_EOL så får du rätt radbrytning.
Vid en Windows installation så är PHP_EOL == "\r\n" och i *nix så är den "\n"
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-19, 08:33 #10
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
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.
jonny ä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 21:03.

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