2016-06-28 13 views
1

Ich habe ein seltsames Problem mit PHP Mail-Funktion, die ich einfach nicht herausfinden kann. Jede Zeile im E-Mail-Textkörper wird durch eine oder zwei neue Zeilen getrennt. Wenn ich jedoch einen Ternäroperator für eine der Zeilen verwende, wird die Zeile nicht unterbrochen. Der Code sieht etwa so aus:PHP mail linebreak Probleme mit ternären Operator in Körper

$body = 'This line breaks properly' . "\r\n" . 
     'This line also breaks properly' . "\r\n" . 
     'This one as well' . "\r\n\r\n" . 

     'This line ' . ($value == true ? 'breaks' : 'does not break') . ' properly' . "\r\n" . 
     'This one works fine' . "\r\n" . 
     'New line again'; 

mail('[email protected]', 'Test Email', $body, $headers); 

Der Ausgang ich erhalte, ist:

This line breaks properly 
This line also breaks properly 
This one as well 

This line does not break properly This one works fine 
New line again 

Ich habe doppelt und dreifach überprüft, um sicherzustellen, dass ich doppelte Anführungszeichen um jeden \r\n, habe ich versucht ($value == true) innerhalb der ternär, und ich habe versucht, Content-Type: text/plain; in der Header-Zeichenfolge. Es funktioniert nur, wenn ich den ternären Operator vollständig entfernt habe. Ich benutze PHP 5.5.36, wenn das für das, was vor sich geht, relevant ist.

+0

@ JoseManuelAbarcaRodríguez Ich habe das auch versucht, aber ich habe vergessen, es zu erwähnen. – mcon

+0

@ JoseManuelAbarcaRodríguez Nein. Die Linie bricht immer noch nicht. – mcon

+0

Versuchen Sie Ihren Code in http://phpfiddle.org/, es funktioniert für mich, also, du bist es. –

Antwort

1

Ich fand heraus, was es war. Oder besser gesagt, jemand anders hat herausgefunden, was es war. Es ist ein Problem, dass Outlook automatisch zusätzliche Zeilenumbrüche aus Nur-Text-E-Mails entfernt. Ich fand die Antwort auf this Frage und die 40 Zeichen/Leerzeichen Problem war das genaue Verhalten, das ich auch erlebt habe.

Als eine Lösung, entschied ich mich, nur HTML-Mail stattdessen senden, weil <br> Tags einfacher zu arbeiten sind, denke ich.

Verwandte Themen