Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Mail Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Mail Problem


 
IceT
12-03-2005, 12:23 
 
Hallo,

Ich möchte folgendes per Mail verschicken:

Ich habe eine Variable $gesamt, die sich aus mehreren Variablen zusammensetzt.
Zum Beispiel: $text1, $text2,$text3

If ($text1) {$gesamt .= "$text1<br>";}
If ($text2) {$gesamt .= "$text2<br>";}
If ($text3) {$gesamt .= "$text3<br>";}

Die HTML Ausgabe von $gesamt ist dann, wenn alle $text1-3 existieren:
Inhalt text
Inhalt text2
Inhalt text3

So weit so gut.

Jetzt möchte ich aber die $gesamt per ASCII Mail verschicken und er soll mir in meiner Mail ebenfalls die <br> anzeigen.
Das funktioniert aber in meiner ASCII mail nicht.

Die mail sieht dann so aus:
Inhalt text1<br>Inhalt text2<br>Inhalt text3<br>

Er sieht also in der mail nicht, dass ich breaks haben möchte.
Ich habe auch schon versucht mit str_replace dir <br> durch \n zu ersetzen, aber das mag er auch nicht :((


Jemand eine Idee ??

 
TobiaZ
12-03-2005, 12:51 
 
Ich habe auch schon versucht mit str_replace dir <br> durch \n zu ersetzen Das ist aber der richtige ansatz.

versuch mal \n\r

alternativ (halte ich für besser)

erst $gesamt mit normalen umbrüchen definieren, und dann nl2br darüber laufen lassen. dann haste den html-quelltext auch entsprechend formatiert.

 
Abraxax
12-03-2005, 13:16 
 
versuch mal \n\r \r\n ist hier wohl besser. ,-)

 
TobiaZ
12-03-2005, 13:23 
 
schwups...

 
IceT
12-03-2005, 13:25 
 
also in mit $gesamt = str_replace('<br>','/r/n',$gesamt);
gehts nicht!

Wie meinst du das mit normalen Umbrüchen und dann nl2br drüber laufen lassen?

 
IceT
12-03-2005, 13:30 
 
$gesamt = str_replace('<br>','',$gesamt);
$gesamt=nl2br($gesamt);


Auch so geht es nicht :((

 
TobiaZ
12-03-2005, 13:46 
 
$gesamt = str_replace('<br>','',$gesamt);
$gesamt=nl2br($gesamt); funktioniert mit sicherheit, bringt nur logischerweise nicht das gewünschte ergebnis ;)

zeig mal nen kleinen testcode.

 
IceT
12-03-2005, 14:19 
 
if ($pdf1){ $gesamtmaterial .= "$pdf1<br>";}
if ($pdf1a){ $gesamtmaterial .= "$pdf1a<br>";}
if ($pdf1b){ $gesamtmaterial .= "$pdf1b<br>";}

$gesamtmaterial = str_replace('<br>','',$gesamtmaterial);
$gesamtmaterial=nl2br($gesamtmaterial);

$empfmail = "xxx@xxx.de";
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: ".$Name." <".$Email.">\n";
$headers.="To: ".$empfmail." <".$empfmail.">\n";
$headers.="Reply-To: ".$Name." <".$Email.">\n";
$headers.="X-Priority: 3\n";
$headers.="X-MSMail-Priority: Normal\n";
$headers.="X-Mailer: Webserver\n";
mail ($empfmail, 'Online-Kontakt', "Bitte senden Sie mir folgende Infomaterialien zu:\n\nInfomaterial:\n$gesamtmaterial",$headers);

 
TobiaZ
12-03-2005, 14:22 
 
so meinte ich das nicht, weil so kann ich kein stück ausprobieren, weil ich deine testwerte ja nicht kenne.

btw: mit über 100 postings solltest du eigentlich die regeln bezüglich des posten von quellcode kennen!

 
IceT
12-03-2005, 15:28 
 
Hmm, ich kann hier nicht den ganzen code posten, aber so müsst es auch gehen:

<?php
$pdf1 = "test";
$pdf1a = "test2";
$pdf1b = "test3";

if ($pdf1){ $gesamtmaterial .= "$pdf1<br>";}
if ($pdf1a){ $gesamtmaterial .= "$pdf1a<br>";}
if ($pdf1b){ $gesamtmaterial .= "$pdf1b<br>";}

echo "Du hast folgende Materialien ausgewählt: §gesamtmaterial";

if ($gesamtmaterial){
$gesamtmaterial = str_replace('<br>','',$gesamtmaterial);
$gesamtmaterial=nl2br($gesamtmaterial);

$Name = "Heinz";
$Email = "mustermann@mustermann.de";

$empfmail = "DeineEmail";
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: ".$Name." <".$Email.">\n";
$headers.="To: ".$empfmail." <".$empfmail.">\n";
$headers.="Reply-To: ".$Name." <".$Email.">\n";
$headers.="X-Priority: 3\n";
$headers.="X-MSMail-Priority: Normal\n";
$headers.="X-Mailer: Webserver\n";
mail ($empfmail, 'Online-Kontakt', "Bitte senden Sie mir folgende Infomaterialien zu:\n\nInfomaterial:\n$gesamtmaterial",$headers);
}
?>

Nochmal vielen Dank für deine Hilfe

 
IceT
12-03-2005, 15:29 
 
echo "Du hast folgende Materialien ausgewählt: §gesamtmaterial";

muss heissen:
--> echo "Du hast folgende Materialien ausgewählt: $gesamtmaterial";

 
TobiaZ
12-03-2005, 17:35 
 
da muss ich den link wohl doch noch posten:
http://www.php-resource.de/forum/showthread.php?threadid=50454

:rolleyes:

außerdem hatte ich glaube ich schonmal gepostet, dass

if ($gesamtmaterial){
$gesamtmaterial = str_replace('<br>','',$gesamtmaterial);
$gesamtmaterial=nl2br($gesamtmaterial);

schwachsinn ist!

 
IceT
12-03-2005, 18:54 
 
Ich weiss doch selbst das das Schwachsinn ist, ich habe das ja hier gepostet, um von euch Hilfe bei meinem Problem zu erhalten !!!

Bitte poste doch nicht, dass das so nicht funktioniert, sondern ich wäre dir sehr dankbar, wenn du mir bei meinem Prolem helfen könntest!!

 
TobiaZ
12-03-2005, 19:54 
 
wenn du nicht auf mich eigengehst (anpassung den Quelltextes - sowohl inhaltlich als auch format), werde ich auch nicht näher auf dein Prob eigehen. Sorry.

 
IceT
13-03-2005, 00:48 
 
ok dann poste ich das ganze nochmal:

[PHP]
<?php
$pdf1 = "test1";
$pdf1a = "test2";
$pdf1b = "test3";

if ($pdf1){ $gesamtmaterial .= "$pdf1<br>";}
if ($pdf1a){ $gesamtmaterial .= "$pdf1a<br>";}
if ($pdf1b){ $gesamtmaterial .= "$pdf1b<br>";}

echo "Du hast folgende Materialien ausgewählt:<br>$gesamtmaterial";

if ($gesamtmaterial){
$gesamtmaterial = str_replace('<br>','',$gesamtmaterial);
$gesamtmaterial=nl2br($gesamtmaterial);

$Name = "Heinz";
$Email = "mustermann@mustermann.de";

$empfmail = "DeineEmail";
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: ".$Name." <".$Email.">\n";
$headers.="To: ".$empfmail." <".$empfmail.">\n";
$headers.="Reply-To: ".$Name." <".$Email.">\n";
$headers.="X-Priority: 3\n";
$headers.="X-MSMail-Priority: Normal\n";
$headers.="X-Mailer: Webserver\n";
mail ($empfmail, 'Online-Kontakt', "Bitte senden Sie mir folgende Infomaterialien zu:\n\nInfomaterial:\n$gesamtmaterial",$headers);
}
?>
[\PHP]

-> Ich bekomme dann als html Ausgabe:
Du hast folgende Materialien ausgewählt:
test1
test2
test3

--> Soweit ok!

Nun erhalte ich eine mail, in der steht dann:
Du hast folgende Materialien ausgewählt:
test1test2test3

Ich hätte aber gern, dass in meiner Mail auch die Ausgabe so aussieht wie in der html Ausgabe!


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:09 Uhr.