Afbeelding weergave/invoegen

Status
Niet open voor verdere reacties.

Paul78

Nieuwe gebruiker
Lid geworden
3 dec 2017
Berichten
3
Hallo,

Als iemand het contactformulier ingevuld + verzonden heeft krijg ik een mail met de gegevens en de ander ook.
Graag wil ik als die persoon de mail ontvangen heeft ook een afbeelding ziet.
Wat is de code om dit in te voegen? Alvast bedankt voor de reactie(s)

Hiervoor gebruik ik het volgende php mail formulier:

<?php
$message = "naam: ".$_POST['Naam']."
E-mail: ".$_POST['Email']."
Opmerking/vraag: ".$_POST['Tekst']."
";
switch ($_POST['Code'])

{



case 'P5qL9':

$mail="contact@domeinnaam.nl"; break;





default:



header("Location: fout.htm");



trigger_error ('FOUT', E_USER_ERROR);

}



if ((($_POST['Naam']) == '') or (($_POST['Naam']) == ''))

{

header("Location: fout.htm");

trigger_error ('FOUT', E_USER_ERROR);

}


mail ($mail,"Vraag/opmerking", $message,"From: $_POST ($_POST[Naam])");

header("Location: bedankt.htm");
?>
 
Gebruik de juiste mail-headers:

Code:
<?php
/* Je configuratie hier */
// Geef GELDIGE adressen op
// Een korte benaming voor jouw website
$website_naam = 'Mijn Site';
// Jouw eigen geldige emailadres
$eigen_emailadres = 'mijn_emailadres@mijn_domein.nl';
// Een geldig emailadres voor errors
$error_emailadres = 'mijn_emailadres@mijn_domein.nl';
// De naam van de verzender
$naam_verzender = 'Afzender';
// Het geldige emailadres van de afzender
$email_verzender = 'emailadres_van_verzender@zijn_domein.nl';
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = 'geldig_emailadres@geldig_domein.nl';
// HTML mail? True/False
$html = true;

/* Vanaf hier niks meer veranderen! */
// De headers samenstellen
$headers	 = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers	.= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers	.= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers	.= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers	.= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers	.= 'X-Priority: Normal' . "\r\n";
$headers	.= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers	.= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';

// en dan kan je vanaf hier $header gebruiken in je 4e argument van de mail() functie, en je kan HTML gebruiken.
// Houd wel rekening dat afbeeldingen nooit direct getoond worden vanwege veiligheidsredenen, en dat de lezer van de mail dit moet bevestigen.
// De HTML-code is:
// <img src="http://www.website.nl/plaatje.png" title="Logo" alt="Mijn website!">
?>

Verder heb ik nog een paar opmerkingen:
- Na een location-header hoort een exit; omdat je script stopt.
- Vergeet de quotes hier niet: $_POST
- Bouw een if-else constructie om je mail. het kan zijn dat de mailfunctie onverhoopt niet werkt door een configuratieprobleem op de server.
Dus laat de gebruiker dat dan weten, zodat die de mail handmatig kan versturen naar je mailadres.

Persoonlijk zou ik voor het gemak liever voor [URL="https://github.com/PHPMailer/PHPMailer"]PHPmailer[/URL] gaan omdat je daarmee met enkele regels al de mail kan versturen, en omdat je daar niet moeilijke fratsen hoeft uit te halen met headers. In de map [I]examples[/I] staan wat voorbeelden die je kan gebruiken, als je via de groene knop het hele zwikkie van phpMailer gedownload hebt.

[b]Update[/b]
Gebruik ook filter_var om header-injection te voorkomen. Anders kan iemand via een aangepaste waarde je mail-commando's zo prepareren dat hij ermee kan spammen:
[code]
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
[/code]
 
Laatst bewerkt:
@PHP4U,
Bedankt voor uw reactie.
Momenteel ben ik nog een groentje met PHP.

Net even met de huidige script getest.
Het script wat u heeft geplaats zal ik later gaan bekijken.

Heb onderstaande aangepast (uiteraard de url aangepast) maar helaas werkt het nog niet, het geeft een foutmelding 500
<?php
<img src="http://www.website.nl/plaatje.png" title="Logo" alt="Mijn website!">
$message = "naam: ".$_POST['Naam']."
E-mail: ".$_POST['Email']."
Opmerking/vraag: ".$_POST['Tekst']."
 
Je kan op dit forum je script tussen code-tags zetten. Zie de rechter PHP-knop in de werkbalk van Snel reageren.

Over je error:
Je kan niet zomaar HTML in je PHP-script zetten. Dit moet dan in je $message staan. En dan zou ik ook meteen geen dubbele quotes gebruiken maar single-quotes ' om je tekst tussen te zetten. Omdat de " van je HTML anders zullen conflicteren. Dit kan je escapen met een \, maar dat is in mijn ogen weer ranzig werk.

Maar verder mis je de headers nog die ik opgenoemd heb.
 
Ik hoop dat het lukt. Anders horen we het wel.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan