Reply of autoresponder versturen als html

Status
Niet open voor verdere reacties.

comass

Gebruiker
Lid geworden
19 dec 2000
Berichten
448
Hallo,

Ik gebruik dit php script echter deze stuurt de bevestiging als text en niet als html.
Iemand een idee hoe dit om te zetten is?

De reden om het als HTML te ontvangen is om het € als € weer te geven en niet als ?.
Ook wil ik een logo of tekst kleur kunnen gebruiken.

PHP:
<?php
/******************************
*  Script:   Form Mail        *
*  Versie:   4.0              *
*  Author:   SkYcE            *
*  Released: 07-12-2006       *
******************************/
//Set sessie voor flood optie
session_start();
/*
** Variabelen instellen
*/

// Naam voor als afzender van het bevestigingsmailtje
$var_name      = "website naam";
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres
//$var_email     = "";
$var_email     = "e-mail adres ontvanger";
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit)
$var_confirm   = true;
// Om flooden te voorkomen (true = aan / false = uit)
$var_noflood   = true;
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden
$var_flood_msg = "U bent aan het flooden!";
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht
$var_flood_sec = 20;
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array
$var_ban_ips   = array('255.255.255.0');
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is
$var_ban_msg   = "U bent geblokkeerd van het versturen van het contact formulier.";
 

/*
** Hieronder niks veranderen, tenzij je weet wat je doet
*/
//Functie voor ipadres verkrijgen
function get_ip () {
	if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
	$ipadres = $_SERVER['HTTP_X_FORWARDED_FOR'];
	} elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
	$ipadres = $_SERVER['HTTP_CLIENT_IP'];
	} else {
	$ipadres = $_SERVER['REMOTE_ADDR'];
	}
	
	return $ipadres;
}

//Host verkrijgen 
$hostmask = gethostbyaddr(get_ip()); 
// Formulier weergeven 
$form_view = true;
//Formulier versturen, als er iets misgaat word $ok = false 
$ok = true; 
// Bestandsnaam verkrijgen
$filename = basename($_SERVER['PHP_SELF']);
// Errors
$error = 'Sorry, 1 of meerdere velden zijn niet ingevuld  <A HREF="javascript:history.go(-1)">[Terug]</A><p>';

if($_SERVER['REQUEST_METHOD'] == 'POST') {
   if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {  
        $ok = false;  
        $error .= 'Het E-mail adres is niet correct.<br />';  
   }

   // E-mail naar $var_email (webmaster)
$msg_2_admin = "

".$_POST['subject']." 


Specificatie:
".$_POST['model']." 
".$_POST['service']."
".$_POST['kraanhuur']."

Totaal bedrag: ".$_POST['totaal']." 

Winterstalling voor:
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']." 
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."

--------------------------------
Deze e-mail is verzonden vanaf:
IP adres: ".get_ip()."
Hostadres: ".$hostmask;

// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['aanhef']." ".$_POST['naam'].", 

Met dank bevestigen wij onderstaande reservering van uw winterstalling, hebben wij de volgende gegevens ontvangen.


Specificatie:
".$_POST['model']." 
".$_POST['service']."
".$_POST['kraanhuur']."

Totaal bedrag: ".$_POST['totaal']." 

Winterstalling voor:
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']." 
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."

 
Met vriendelijke groet,


naam afzender met adres


".$_POST['var_name'];






	if(in_array(get_ip(),$var_ban_ips)) {
		echo $var_ban_msg;
		$form_view = false;
	} elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
		echo $var_flood_msg;
		$form_view = false;
	} elseif ($ok == true) {
        @$send = mail($var_email,
        			  "Reservering: ".$_POST['subject']." ".$_POST[''],
        			  $msg_2_admin,
        			  "From: ".$_POST['voorletter']." ".$_POST['naam']."<".$_POST['email'].">");
        
		if($send == 1) {  
			if($var_confirm == true){  
				mail($_POST['email'],
					 "reservering: ".$_POST['subject']." ".$_POST[''],
					 $msg_2_poster,
					 "From: ".$var_name."<".$var_email.">");  
			}
			
			echo'Beste '.$_POST['aanhef'].' '.$_POST['naam'].',';
			
			if($var_confirm == true){  
				echo'<br /><br />Uw bericht is verzonden, bedankt voor uw reactie.'; 
				echo'<br /><br />Er is een bevestigingsmail onderweg met wat u heeft ingevuld.'; 
						} 
		}else{  
			echo'Beste '.$_POST['naam'].', uw bericht is helaas niet verzonden.<br /><br />
			Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk
			te verhelpen.<br /><br />
			
			Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de
			<a href="mailto:'.$var_email.'">Webmaster</a><br /><br />
			
			Bedankt voor uw medewerking.';  
		} 
		
		$form_view = false;
		
		$_SESSION["antiflood"] = time();
	}
}

/*
** Formulier
*/
if($form_view == true) {
	echo '
	<html>
	<head>
	    <title>Contactformulier</title>
	    <style type="text/css">
	    	body {
	    		font-family: Arial;
	    		font-size:12px;
	    	}
	    	td {
	    		font-family: Arial;
	    		font-size:12px;
	    	}
	    </style>
	</head>
	
	<body>';
	
	if($error != '') {
		echo '<font style="color:#FF0000;"><b>'.$error.'</b></font><br />';
	}
	
	echo '<form method="POST" action="'.$filename.'" style="border:0px; margin:0px; padding:0px;">
	
	</table> 
	</form>    
	</body>
	</html>';
}
?>

<p>&nbsp;</p>
 
Het is heel gemakkelijk.

Je zet onder $var_ban_msg = ... (maakt niet zo heel veel uit waar het staat, maar dan houdt je het lekker overzichtelijk ;)):

PHP:
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Dat geeft de emailclient aan dat het HTML is. Dan moet je alleen nog wel even de FROM header toevoegen:

PHP:
$headers .= "From: " . $var_name . "<" . $var_email . ">" . "\r\n";

En dan maak je in op regel 142 van

PHP:
"From: ".$var_name."<".$var_email.">");

dit:

PHP:
$headers);
 
Hoi,

Zo heb ik het aangepast
PHP:
<?php
/******************************
*  Script:   Form Mail        *
*  Versie:   4.0              *
*  Author:   SkYcE            *
*  Released: 07-12-2006       *
******************************/
//Set sessie voor flood optie
session_start();
/*
** Variabelen instellen
*/

// Naam voor als afzender van het bevestigingsmailtje
$var_name      = "comass";
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres
//$var_email     = "*****@****.com";
$var_email     = "e-mail adres ontvanger";
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit)
$var_confirm   = true;
// Om flooden te voorkomen (true = aan / false = uit)
$var_noflood   = false;
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden
$var_flood_msg = "U bent aan het flooden!";
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht
$var_flood_sec = 20;
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array
$var_ban_ips   = array('255.255.255.0');
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is
$var_ban_msg   = "U bent geblokkeerd van het versturen van het contact formulier.";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: " . $var_name . "<" . $var_email . ">" . "\r\n";

/*
** Hieronder niks veranderen, tenzij je weet wat je doet
*/
//Functie voor ipadres verkrijgen
function get_ip () {
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ipadres = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
    $ipadres = $_SERVER['HTTP_CLIENT_IP'];
    } else {
    $ipadres = $_SERVER['REMOTE_ADDR'];
    }

    return $ipadres;
}

//Host verkrijgen
$hostmask = gethostbyaddr(get_ip());
// Formulier weergeven
$form_view = true;
//Formulier versturen, als er iets misgaat word $ok = false
$ok = true;
// Bestandsnaam verkrijgen
$filename = basename($_SERVER['PHP_SELF']);
// Errors
$error = 'Sorry, 1 of meerdere velden zijn niet ingevuld  <A HREF="javascript:history.go(-1)">[Terug]</A><p>';

if($_SERVER['REQUEST_METHOD'] == 'POST') {
   if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {
        $ok = false;
        $error .= 'Het E-mail adres is niet correct.<br />';
   }

   // E-mail naar $var_email (webmaster)
$msg_2_admin = "

".$_POST['subject']."


Specificatie:
".$_POST['model']."
".$_POST['service']."
".$_POST['kraanhuur']."

Totaal bedrag: ".$_POST['totaal']."

Winterstalling voor:
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']."
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."

--------------------------------
Deze e-mail is verzonden vanaf:
IP adres: ".get_ip()."
Hostadres: ".$hostmask;

// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['aanhef']." ".$_POST['naam'].",

Met dank bevestigen wij onderstaande reservering van uw winterstalling, hebben wij de volgende gegevens ontvangen.


Specificatie:
".$_POST['model']."
".$_POST['service']."
".$_POST['kraanhuur']."

Totaal bedrag: ".$_POST['totaal']."

Winterstalling voor:
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']."
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."


Met vriendelijke groet,


naam afzender met adres


".$_POST['var_name'];






    if(in_array(get_ip(),$var_ban_ips)) {
        echo $var_ban_msg;
        $form_view = false;
    } elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
        echo $var_flood_msg;
        $form_view = false;
    } elseif ($ok == true) {
        @$send = mail($var_email,
                      "Reservering: ".$_POST['subject']." ".$_POST[''],
                      $msg_2_admin,
                      "From: ".$_POST['voorletter']." ".$_POST['naam']."<".$_POST['email'].">");

        if($send == 1) {
            if($var_confirm == true){
                mail($_POST['email'],
                     "reservering: ".$_POST['subject']." ".$_POST[''],
                     $msg_2_poster,
                     "From: ".$headers);
            }

            echo'Beste '.$_POST['aanhef'].' '.$_POST['naam'].',';

            if($var_confirm == true){
                echo'<br /><br />Uw bericht is verzonden, bedankt voor uw reactie.';
                echo'<br /><br />Er is een bevestigingsmail onderweg met wat u heeft ingevuld.';
                        }
        }else{
            echo'Beste '.$_POST['naam'].', uw bericht is helaas niet verzonden.<br /><br />
            Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk
            te verhelpen.<br /><br />

            Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de
            <a href="mailto:'.$var_email.'">Webmaster</a><br /><br />

            Bedankt voor uw medewerking.';
        }

        $form_view = false;

        $_SESSION["antiflood"] = time();
    }
}

/*
** Formulier
*/
if($form_view == true) {
    echo '
    <html>
    <head>
        <title>Contactformulier</title>
        <style type="text/css">
            body {
                font-family: Arial;
                font-size:12px;
            }
            td {
                font-family: Arial;
                font-size:12px;
            }
        </style>
    </head>

    <body>';

    if($error != '') {
        echo '<font style="color:#FF0000;"><b>'.$error.'</b></font><br />';
    }

    echo '<form method="POST" action="'.$filename.'" style="border:0px; margin:0px; padding:0px;">

    </table>
    </form>
    </body>
    </html>';
}
?>

Volgens mij heb ik alles gedaan wat je als opmerking plaatste, echter de mail komt nu niet binnen
 
Niet helemaal,

op regel 144 staat:

PHP:
"From: ".$headers);

Dat moet zijn:

PHP:
$headers);
 
Hoi,

Als afzender ontvang ik nu wel het mailtje.
Echter zonder het e-mail adres van de website.
Ook komt de mail niet binnen bij mij als eigenaar van de site, kan hier een fout inzitten?


Code:
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: " . $var_name . "<" . $var_email . ">" . "\r\n";
 
Het is nu alleen nog maar aangepast voor de mail naar de poster.

Als je het naar jezelf ook als HTML wilt, moet je het bij die mail ook aanpassen. Aangezien dat precies hetzelfde gaat, neem ik aan dat je dat zelf wel lukt.

Waarom het emailadres niet getoond wordt is mij een raadsel. De variabele wordt al toegewezen voordat het in de header gestopt wordt, dus daar kan het eigenlijk niet misgaan.
 
Hoi,

Stom, stommer stomst.
Hier zat mijn fout.

PHP:
$var_email     = "e-mail adres ontvanger";

Dit werkt nu, hoe krijg ik nu dit aan de praat?
De reden om het als HTML te ontvangen is om het € als € weer te geven en niet als ?.
Ook wil ik een logo of tekst kleur kunnen gebruiken.
 
Hoezo "hoe krijg ik dit nu aan de praat?"? Wat werkt er nu nog niet dan?
 
Hoi,

Misschien doe ik iets fout.
PHP:
// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['aanhef']." ".$_POST['naam'].",

Met dank bevestigen wij onderstaande reservering van uw winterstalling, hebben wij de volgende gegevens ontvangen.


Specificatie:
".$_POST['model']."
".$_POST['service'].";
".$_POST['kraanhuur']."

Totaal bedrag: ".$_POST['totaal']."

Winterstalling voor:
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']."
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."


Met vriendelijke groet,


naam afzender met adres

Dit komt nu allemaal achter elkaar te staan, en ik heb geen idee waarom.
 
Omdat je in HTML regels scheidt middels een <br> tag.

Probeer het eens zo:

ipv
PHP:
$msg_2_poster
// en
$msg_2_admin

:

PHP:
nl2br ( $msg_2_poster ) ;
// en
nl2br ( $msg_2_admin );
 
Hoi,

Hoe ik er ook inzet, de mail komt blanco binnen.
Als ik ook de regel naar admin aanpas, heb ik deze ook blanco.

Deze $msg_2_admin heb ik niet veranderd.

Deze heb ik zo veranderd
PHP:
$msg_2_poster = "Beste ".$_POST['aanhef']." ".$_POST['naam'].",
in
PHP:
nl2br ( $msg_2_poster );"Beste ".$_POST['aanhef']." ".$_POST['naam'].";
 
Daar moet je dat niet doen. Dat moet je doen op regel 136 en 143.
 
Hoi,

Hij doet het.
Deze regel (144)
PHP:
 nl2br ( $msg_2_poster ) ;

Heb ik veranderd in:
PHP:
nl2br ( $msg_2_poster ) ,

De ; heb ik veranderd in een ,

Wel krijg ik nu deze regel van mij virusscanner voor de tekst Beste...
X-Antivirus: AVG for E-mail 8.5.386 [270.13.4/2218] X-Antivirus: AVG for E-mail 8.5.386 [270.13.4/2218]
 
Dat moest inderdaad met een komma.

Waarom je die melding precies krijgt weet ik niet precies. Dat heeft waarschijnlijk te maken met de virusscanner op de uitgaande machine.
 
Hoi,

Bedankt tot zover, zal eens kijken naar mijn virusscanner.
In Hotmail komt die nu ook goed binnen.

Hoe plaats ik nu html tags in dit gedeelte?
Bijvoorbeeld letter kleur en achtergrond en logo?
 
Gewoon net als op een HTML pagina.

PHP:
$msg_2_poster = "Beste ".$_POST['aanhef']." ".$_POST['naam'].",
 
<em>Met dank bevestigen wij onderstaande reservering van uw winterstalling, hebben wij de volgende gegevens ontvangen.</em>
 
 
Specificatie:
".$_POST['model']."
".$_POST['service'].";
".$_POST['kraanhuur']."
 
<span style=\"text-decoration: underline; \">Totaal bedrag:</span> &euro; ".$_POST['totaal']."
 
Winterstalling voor:
".$_POST['aanhef']." ".$_POST['voorletter']." ".$_POST['naam']."
".$_POST['adres']." ".$_POST['huisnummer']."
".$_POST['postcode']." ".$_POST['woonplaats']."
Email:     ".$_POST['email']."
Telefoon: ".$_POST['telefoon']."
 
 
Met vriendelijke groet,
 
 
naam afzender met adres
 
Hoi,

Onderstrepen werkt wel, alleen wordt het totaal bedrag niet ingevuld

PHP:
<span style=\"text-decoration: underline; \">Totaal bedrag:</span> &euro; ".$_POST['totaal']."
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan