mailenin html

Status
Niet open voor verdere reacties.

acid007

Gebruiker
Lid geworden
13 jun 2002
Berichten
775
Ik weet wel mail() hoe ik een email verstuur, werkt prima allemaal. Maar hoe maak ik de body, HTML?



Thnx
 
Dit mailform gebruik ik altijd voor mijn websites. Als je het mailform verstuurd, worden alle velden weer leeggemaakt, is er iets verplichts niet ingevuld, dan worden de waarden behouden en automatisch weer ingevuld.

PHP:
<?php

if(IsSet($_POST['naam'])) // Is het mailform verstuurd?
{
	if($_POST['naam'] != "" && $_POST['bericht'] != "") // Checken of naam en bericht wel ingevuld zijn
	{
	mail("email@provider.nl","E-mail website","Naam: {$_POST['naam']}\nEmail: {$_POST['email']}\nWebsite: {$_POST['website']}\nBericht: {$_POST['bericht']}"); // Dit moet je zelf invullen
	print("E-mail verstuurd!");
	$_POST = ""; // De $_POST string leegmaken
	}
	else // Is naam of bericht leeg?
		print("<font color=\"red\">De velden 'Naam' en 'Bericht' moeten ingevuld zijn!</font>"); // Foutmelding weergeven
}

?>
<form action="<?php print("$PHP_SELF");?>" method="post">
<table width="100%">
<tr>
<td>Naam: *
<td><input type="text" name="naam" value="<?php print($_POST['naam']);?>">
<tr>
<td>E-mail:
<td><input type="text" name="email" value="<?php print($_POST['email']);?>">
<tr>
<td>Website:
<td><input type="text" name="website" value="
<?php 
if(IsSet($_POST['website']))
	print($_POST['website']);
else
	print("http://");
?>">
<tr>
<td valign="top">Bericht: *
<td><textarea rows="10" name="bericht"  cols="25"><?php print($_POST['bericht']);?></textarea>
<tr>
<td>
<td><input type="submit" value="Verstuur">
<tr>
<td>
<td>* is verplicht
</table>
</form>

Je kunt nu zelf ook je eigen velden toevoegen. De name van die velden worden verstuurd en komen als de variabelen $_POST['var'] aan. Dus als je bv een woonplaats wil: &lt;input type="text" name="woonplaats"> dan wordt de variabele $_POST['woonplaats'].

Je kunt dit mailform bekijken in de praktijd op deze website.
 
zoiets heb ik ook, maar ik wil een body hebben met HTML erin
 
ik wil de gebruiker een HTML email sturen, niet weegeven op de website dus maar in zijn/haar mailbox wil ik HTML email hebben, met opmaak e.d
 
Dat kun je doen door er een content type aan toe te voegen in het laatste argument voor mail, de headers:

PHP:
<?php

mail("email@provider.nl","E-mail website","Naam: {$_POST['naam']}\nEmail: {$_POST['email']}\nWebsite: {$_POST['website']}\nBericht: {$_POST['bericht']}", "Content-type: text/html; charset=iso-8859-1\r\n");

?>
 
Geplaatst door acid007
doet het niet helaas

Wees eens wat duidelijker man... Wat doet het niet, wat heb je al geprobeerd, heb je een voorbeeld, post je script hier...
 
Hmmm... Tot vandaag verder geen antwoorden meer... Zal wel opgelost zijn dan?
 
nee, dat niet. Maar weinig tijd om er nog wat aan te doen.

Ik had dat van jou toegevoegd, maar hij verstuurde alles gewoon nog normaal (niet-html)
heel iritant :)
 
Controleer nogmaals en nogmaals en nogmaals dat je het goed hebt ingevuld. Headers in email zijn errug gevoelig voor spaties, hoofdletters, line-breaks, streepjes en puntkomma's. Wees er zeker van dat je het goed invuld.
 
PHP:
<?

/* naar */
$naar = "email@email.nl";

/* onderwerp */
$onderwerp = "Onderwerp";

/* bericht */
$bericht = "<h1>blaat</h1>";

/* header */
$headers = "Content-type: text/html; charset=iso-8859-1\r\nFrom: Je naam <blaat@blaat.bla>\r\n";

mail($naar, $onderwerp, $bericht, $headers);
echo "<font color=green>meel verstuurd :-)</font>";

?>

Deze werkt altijd bij mij. Ik weet niet of het dezelfde is die pcfixer ook gebruikt maar het werkt in ieder geval :p.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan