Nach Email Versand Zeilenumbrüche doppelt vorhanden!

sideshow

Grünschnabel
Morgen!
Ich hab mich ja um einen aussagekräftigen Betreff bemüht, war aber gar nicht so leicht. Leider hab ich auch nix passendes zum meinem Problem hier gefunden - deshalb mach ich jetz selber einen auf...

Problem ist folgendes:
Ich habe ein kleines Newsletter Script geschrieben. Der Admin gibt einen Betreff und einen Text ein, klickt auf Vorschau (Daten werden mittels Session weitergegeben) und schickt das ganze Teil dann ab.
Die Email wird dann an mehrere Adressen geschickt die aus einer DB kommen (hier aber nicht weiter wichtig! :) ).

So, ich hab schon so ziemlich alle Fehlerquellen ausgemerzt, also so sachen wie:
$message = wordwrap(strip_tags(stripslashes($_SESSION['newsletter']['message'])));

=> und das auch alles wunderbar. Die einzige Sache ist: wenn ich im Texteingabefeld einen Zeilenumbruch mache, dann zeigt er in der Email nachher ZWEI Zeilenumbrüche an - und das nervt gewaltig.

Die Email wird als ganz normaler Text versendet (kein HTML) und ein nl2br hab ich auch nirgendswo drin. Ich verstehs einfach nicht. Kann es an der Formatierung der Mail liegen? Das sind die Email Header:
$add = "From: Werbe-Spiegel Newsletter <newsletter@YXY>\n";
$add .= "Reply-To: YXY\n";
$add .= "Organization: Werbe-Spiegel GmbH\n";
$add .= "MIME-Version: 1.0\n";
$add .= "Content-Type: text/plain; charset=iso-8859-1\n";
$add .= "Content-Transfer-Encoding: quoted-printable\n";

Mit den Header-Dingern kenn ich mich auch nicht wirklich aus - könnte deshalb schon daran liegen...
Wäre super wenn Ihr mir helfen könntet!

Viele Grüße,
sideshow
 
Du meinst also eine E-Mail an mehrere Empfänger?

So wird es gehen ABER ich kann es nicht oft genug sagen. Du musst auf dem Host (bei deinem Provider) eine E-Mail haben!
Diese muss auch genau als Absender deffiniert sein,

$xtra = "From: support@2ts2.net (Webmaster)\r\n"; // die wirkliche E-Mailadresse

PHP:
$empfaenger=array();
$aa=mysql_query("SELECT * FROM user ORDER BY user_id ASC");
{
for($i=0;$i<100000000 && ($ab=mysql_fetch_array($aa));$i++){
$empfaenger[]= $ab[user_email];
}
}


for($i=0;$i<count($empfaenger)+1;$i++)
{



$nachricht = stripslashes("$textarea");

$an ="$empfaenger[$i]";
$betreff = "$aubr";

$xtra = "From: support@2ts2.net (Webmaster)\r\n";
$xtra .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
$xtra .= "X-Mailer: PHP ". phpversion();

@mail($an, $betreff, $nachricht, $xtra);
}
 
Hi Lukasz,
danke dir, bringt mir aber leider nix. ich will die email ja als text und nicht als html email verschicken. der versand an mehrere adressen ist auch nicht das problem, ich hab nur ein problem damit, das wenn ich im texteingabefeld einen zeilenumbruch mache der nacher in der email doppelt erscheint!

Beispiel:
Texteingabefeld:
Das ist der tolle Text mit einem Zeilenumbruch.
Genau hier...

Ausgabe in der Email:
Das ist der tolle Text mit einem Zeilenumbruch.

Genau hier...



So sieht das nacher aus und das NERVT! Wenn ich das ganze als html email verschicken würde wäre es kein problem - aber wie gesagt: html möchte ich nicht verwenden!

Viele Grüße,
sideshow
 
habs bisher auch leider noch nicht hinbekommen... liegt wohl irgendwie an der formatierung der email - aber ich hab keine ahnung wie ich das richtig formatieren kann... :(
 
Hab bisschen überlegt:

Also wenn da ein Zeilenumbruch zuviel ist - kann man dann nicht nach 2 aufeinander folgenden \n suchen und diese durch lediglich eins ersetzen?

ungefähr so:

Code:
function convertmailformat($text)
  {
   $text = str_replace("\n\n","\n",$text);
   return $text;
  }

ist aber mehr als frage hingestellt :)
 
Ich glaube ich habs: :-)

Probiert es doch mal so:

Code:
$emailtext = "dein text aus dem TEXTAREA feld mit Zeilenumbruechen...";
$emailtext = convertmailformat($emailtext);
mail(........ ,"$emailtext",....);


function convertmailformat($text)
  {
   $text = str_replace("\n","",$text);
   return $text;
  }

Ich bilde mir ein dass es bei mir nun geht - wäre cool wenn ihr es mal kontrollieren könntet!
 
Das Problem liegt an der unterschiedlichen Speicherung von Zeilenumbrüchen in Windows und Unix - Systemen. Da ich mit Dreamweaver arbeite habe ich bei mir eingestellt, dass er Zeilenumbrüche im Unix-Format speichern soll. Seitdem ist das Problem mit den eMails weg, zumindest bei mir.
 
Zurück