Goedenavond allemaal,

Ik ben sinds kort me meer aan het verdiepen in PHP. Ik weet dat ik nooit een programmeerkoning zal worden, maar ik vind het wel interessant en als designer kom ik er regelmatig mee in aanraking. Voor een vriendin ben ik bezig om een eenvoudige pagina te maken met daarop een "houd me op de hoogte" veld.

Dit formulier met dus maar 1 inputveld moet 2 dingen doen:

1. een mailtje versturen naar de persoon die zich inschrijft (dit heb ik werkend!)
2. een mailtje sturen naar de admin zodat die weet wie zich heeft ingeschreven. Dit laatste krijg ik niet aan de praat.

Hierbij het script:

<?PHP

$email = $_POST["email"];
$to = "[email protected]";
$subject = "Nieuwe registratie voor de nieuwsbrief";
$headers = "From: $email\n";
$message = "De volgende persoon heeft zich ingeschreven voor de nieuwsbrief:\n

E-mail Adres: $email";
$user = "$email";
$usersubject = "inschrijving nieuwsbrief";
$userheaders = "From: [email protected]\n";
$usermessage = "Dank voor je inschrijving op de nieuwsbrief. We houden je op de hoogte.";
mail($to,$subject,$message,$headers);
mail($user,$usersubject,$usermessage,$userheaders);
?>

Kan iemand mij vertellen wat ik verkeerd doe? MIjn dank is groot!
Waarom de mail niet CC sturen, zoals example #4?
http://php.net/manual/en/function.mail.php

Verder raad ik aan om je mailadres uit je code te halen, om eventuele spam-harvesting te voorkomen.
Maar dan krijgen beiden dezelfde boodschap. Ik wil dat de inschrijver een bedankje krijgt en de admin een notificatie van de inschrijving.

(dank voor de tip mbt. de spam)
Komt de mail ook niet in je spam folder terecht toevallig?
Nee. Het enige dat niet wil is de confirmation mail naar de admin ( dus naar [email protected]) de mail naar de subscriber komt netjes aan.
Je stuurt nu twee emails naar het adres dat ingevuld is in het formulier. Daarbij zeg je bij de eerste email ook nog eens dat de afzender hetzelfde is als de ontvanger ...

Ik weet dat het voor veel mensen verwarrend is dus daarom hieronder nog even wat uitleg:

1) Wie verstuurt daadwerkelijk het emailtje? Het enigste juiste antwoord is: de webserver. Nou staat iedere webserver van een beetje waarde gekoppeld aan een domeinnaam. (bijv. mijndomein.nl) Je zou dus de From: moeten veranderen in [email protected] waarbij je mijndomein.nl dus vervangt voor jouw eigen domeinnaam. voor het @ mag je invullen wat je wilt maar vaak wordt daar noreply voor gebruikt --> [email protected].

2) De ontvanger (To:) is natuurlijk wie je maar wilt. Dit kan het mailadres van de admin zijn of van een gebruiker.

3) Aan wie kan de ontvanger op zijn beurt weer antwoorden? Sinds de webserver dus het eerste mailtje verstuurde en een webserver maar een machine is, is het handiger als de ontvanger zijn antwoord stuurt naar een ander adres. Dit kan met de Reply-To: (zie http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders ) (Bedankt SanThe) bijv: Reply-To: [email protected]
>> Nee. Het enige dat niet wil is de confirmation mail naar de admin ( dus naar [email protected]) de mail naar de subscriber komt netjes aan.

Dat was me duidelijk. Mijn vraag is of de mail aan jou niet in jouw spamfolder van Gmail terechtkomt. Heb je dat gecontroleerd?

@Frank

Volgens mij klopt de code wel. Zit alleen wat onduidelijk in elkaar.

De 1e mail-regel stuurt de bevestiging naar de TS. De 2e regel stuurt naar de ingeschreven persoon.

Ok, maar het is toch logisch dat de admin (in dit geval [email protected]) een notificatiemail krijgt van hetzelfde domein? Dat is prima, na [email protected] zijn of [email protected]. Dat maakt me niet zoveel uit. Punt is dat ie niet aankomt. Jij geeft aan dat ie naar de subscriber gaat, maar ik heb er toch $to = "[email protected]"; staan?

De subscriber moet een mail krijgen op zijn ingevulde mailadres op het formulier en dit moet ook afkomstig zijn van [email protected]. Dit werkt al en gaat dus goed.

Sorry voor mijn noobness, maar ik baal dat ik die notification voor de admin niet aan de praat krijg en de tweede mail wel.

<?php
$website_from = '[email protected]';
$website_naam = 'mijnwebsite';
$admin = '[email protected]';
$email = $_POST['email'];

$subject = "Nieuwe registratie voor de nieuwsbrief";
$message = "De volgende persoon heeft zich ingeschreven voor de nieuwsbrief:\n\nE-mail Adres: $email";
$headers = 'From: ' . $website_naam . ' <' . $website_from . '>' . "\r\n";
mail($admin, $subject, $message, $headers);


$subject = "inschrijving nieuwsbrief";
$message = "Dank voor je inschrijving op de nieuwsbrief. We houden je op de hoogte.";
$headers = 'From: ' . $website_naam . ' <' . $website_from . '>' . "\r\n";
$headers .= 'Reply-To: administrator <' . $admin . '>' . "\r\n";
mail($email,$subject,$message,$headers);
?>

Just try this :-)
Koning! Die werkt exact zoals ik wil! Super bedankt Frank Nietbelangrijk. Ik ga deze even rustig bekijken en morgen iemand blij maken!
Graag gedaan. Merk op dat ik regel 16 er later nog even gauw tussen heb gezet, (de reply-to).

Reageren