Enter ( <br> \n ) probleempje
Ik zit met een klein probleempje.
Ik wil een mailtje verzenden naar alle adressen in mijn database, dit is ook geen probleem, alleen hij verwerkt de enters niet van het formulier.
Eerst probeerde ik nl2br() maar dit lost het niet op.
in een mail gebruikt hij \n 's, dus moet je nl2br() niet gebruiken zowiezo.
Dit is de code voor het versturen van de mail.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sql_3 = mysql_query("SELECT * FROM tabel");
while($res_3 = mysql_fetch_array($sql_3)){
//mail verzenden
$recipient = $res_3["email"];
$subject = $_POST["v_onderwerp"];
$header = "From: Dragonscage.nl <[email protected]>\r\n";
$mail_body = "" . $_POST["v_bericht"] . "";
$mail_body .= "\n\n =---------- Automatisch bericht: Reply niet mogelijk ----------= \n";
if(mail($recipient, $subject, $mail_body, $header)){
$mail_verstuurd = "De mail is verstuurd";
} else {
$mail_verstuurd = "Fout ! Mail niet verstuurd";
}}
echo $mail_verstuurd;
?>
$sql_3 = mysql_query("SELECT * FROM tabel");
while($res_3 = mysql_fetch_array($sql_3)){
//mail verzenden
$recipient = $res_3["email"];
$subject = $_POST["v_onderwerp"];
$header = "From: Dragonscage.nl <[email protected]>\r\n";
$mail_body = "" . $_POST["v_bericht"] . "";
$mail_body .= "\n\n =---------- Automatisch bericht: Reply niet mogelijk ----------= \n";
if(mail($recipient, $subject, $mail_body, $header)){
$mail_verstuurd = "De mail is verstuurd";
} else {
$mail_verstuurd = "Fout ! Mail niet verstuurd";
}}
echo $mail_verstuurd;
?>
Hoe moet ik dit oplossen ? :S
Ik had bij de PHP nl2br() Tutorial gekeken,
en daar vertelde BoaZ dat hij standaard \n er neerzet, en nl2br() ze omzet naar <br>.
Logisch, maar ook met \n 's doet ie het niet !
Alvast bedankt !
Matthijs
Gewijzigd op 08/01/2005 14:23:00 door Matthijs
Geprobeerd te escapen met een backslash?
bedoel je na elke zin in het formulier?
heb namelijk wel in het formulier handmatig (\n) 's
proberen neer te zetten, maar werkt ook niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sql_3 = mysql_query("SELECT * FROM tabel");
while($res_3 = mysql_fetch_array($sql_3)){
//mail verzenden
$recipient = $res_3["email"];
$subject = $_POST["v_onderwerp"];
$header = "From: Dragonscage.nl <[email protected]>\r\n";
$mail_body = nl2br($_POST["v_bericht"]);
$mail_body .= "\r\n\r\n=---------- Automatisch bericht: Reply niet mogelijk ----------= \r\n";
if(mail($recipient, $subject, $mail_body, $header)){
$mail_verstuurd = "De mail is verstuurd";
} else {
$mail_verstuurd = "Fout ! Mail niet verstuurd";
}}
echo $mail_verstuurd;
?>
$sql_3 = mysql_query("SELECT * FROM tabel");
while($res_3 = mysql_fetch_array($sql_3)){
//mail verzenden
$recipient = $res_3["email"];
$subject = $_POST["v_onderwerp"];
$header = "From: Dragonscage.nl <[email protected]>\r\n";
$mail_body = nl2br($_POST["v_bericht"]);
$mail_body .= "\r\n\r\n=---------- Automatisch bericht: Reply niet mogelijk ----------= \r\n";
if(mail($recipient, $subject, $mail_body, $header)){
$mail_verstuurd = "De mail is verstuurd";
} else {
$mail_verstuurd = "Fout ! Mail niet verstuurd";
}}
echo $mail_verstuurd;
?>
zoiets iig
enne, zo vaak achterelkaar mail, is niet verstandig hoor :P
Met \r\n .... lukt ook niet.
De \n's ziet hij wel he?
in :
Code (php)
1
2
3
2
3
<?php
$mail_body .= "\n\n=---------- Automatisch bericht: Reply niet mogelijk ----------= \n";
?>
$mail_body .= "\n\n=---------- Automatisch bericht: Reply niet mogelijk ----------= \n";
?>
maar in het bericht niet :(
Matthijs:
Geprobeerd te escapen met een backslash?
bedoel je na elke zin in het formulier?
bedoel je na elke zin in het formulier?
escapen met een backslash, zou dan zo zijn:
\\n
dus elke \n die je tussen dubbele quotes gebruikt vervangen door \\n
Gewijzigd op 08/01/2005 15:55:00 door John de Boer
John:
escapen met een backslash, zou dan zo zijn:
\\n
dus elke \n die je tussen dubbele quotes gebruikt vervangen door \\n
\\n
dus elke \n die je tussen dubbele quotes gebruikt vervangen door \\n
De \n in de volgende code ( als test ) :
Code (php)
1
2
3
2
3
<?php
$mail_body .= "\n\n=---------- Automatisch bericht: Reply niet mogelijk ----------= \n";
?>
$mail_body .= "\n\n=---------- Automatisch bericht: Reply niet mogelijk ----------= \n";
?>
Doet het wel, en geeft keurig netjes een enter af in mijn e-mail programma.
Als ik die vervang naar \\n dan krijg ik deze ook te zien in mijn e-mail.
maar wat ik dan niet snap, is waarom het niet werkt als ik handmatig een \n ( of een \r\n ) invoeg in het formulier.
Ik heb er geen strip_tags() of stripslashes() inzitten :S
EDIT :
Of zou ik die op een andere manier moeten gebruiken? Ik ken dat namelijk niet
Gewijzigd op 08/01/2005 16:50:00 door Matthijs
Met welke mailclient bekijk je ze? En zitten de enters wel in de berichtbron?
met als berichtindeling HTML.
kun je zo'n bericht ook HTML maken?
Want de meeste ontvanger van mijn mailinglijst gebruiken Outlook.. :S
Gewijzigd op 08/01/2005 19:36:00 door Matthijs
heb oplossing (bijna) gevonden door de volgende regels erin te stoppen :
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
Alleen het vage is. Bij mijn ene e-mail adres pakt ie hem wel, op mijn andere niet ! en pleurt ie alles weer achter elkaar. Terwijl mijn e-mail programma op HTML is ingesteld :S
Iemand enig idee hoe dit kan???