slogan3

Maak een PHP-script voor geautomatiseerde e-mailnotificaties

description

Met deze prompt kan de gebruiker een betrouwbaar PHP-script maken voor automatische e-mailmeldingen die naadloos integreren met hun applicatie. Het helpt bij het voorkomen van misbruik en verhoogt de efficiëntie van communicatie, wat beter is dan handmatig e-mails versturen of standaard scripts zonder beveiliging.

prompt

Help me een PHP-script te ontwikkelen dat automatisch e-mailnotificaties verzendt op basis van specifieke gebeurtenissen in mijn applicatie. Beschrijf hoe ik triggers kan instellen, e-mailtemplates kan gebruiken, en hoe ik ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk, hier is een overzicht van hoe je een PHP-script kunt ontwikkelen voor automatische e-mailnotificaties bij de gebeurtenis "Nieuwe gebruiker registratie". 1. Triggers instellen: - Gebruik een gebeurtenis in je applicatie die wordt geactiveerd bij een nieuwe registratie, bijvoorbeeld na het succesvol opslaan van de gebruiker in de database. - Plaats het e-mailverzendingsscript direct na deze gebeurtenis of roep het aan via een event handler of queue. 2. E-mailtemplates gebruiken: - Maak een HTML- of plain-text templatebestand met placeholders voor dynamische gegevens, bijvoorbeeld: ```html <!-- email_template.html --> <!DOCTYPE html> <html> <head> <title>Welkom bij onze service</title> </head> <body> <p>Welkom bij onze service, <strong>{{gebruikersnaam}}</strong>!</p> </body> </html> ``` - Laad het template in PHP en vervang de placeholders door daadwerkelijke waarden. 3. PHP-script voor verzending: ```php <?php function stuurWelkomstEmail($gebruikersnaam, $email) { // Laad de template $templatePath = 'email_template.html'; $template = file_get_contents($templatePath); // Vervang placeholders $emailContent = str_replace('{{gebruikersnaam}}', htmlspecialchars($gebruikersnaam), $template); // E-mail headers $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; $headers .= "From: no-reply@jouwdomein.nl" . "\r\n"; // Verstuur e-mail mail($email, "Welkom bij onze service", $emailContent, $headers); } ?> ``` 4. Triggers koppelen: - Roep `stuurWelkomstEmail($gebruikersnaam, $email)` aan na het succesvol registreren van een gebruiker, bijvoorbeeld: ```php // Na registratie $gebruikersnaam = $_POST['gebruikersnaam']; $email = $_POST['email']; // Voeg gebruiker toe aan database... // Als succesvol: stuurWelkomstEmail($gebruikersnaam, $email); ``` 5. Beveiliging tegen misbruik: - Valideer en ontsmet alle invoergegevens. - Beperk het aantal e-mails dat per tijdseenheid wordt verzonden (rate limiting). - Gebruik SMTP met authenticatie in plaats van de PHP `mail()` functie voor meer controle en beveiliging. - Voeg CAPTCHA toe bij registratie om bots te voorkomen. - Log alle e-mailverzendacties en controleer op verdachte activiteiten. Door deze stappen te volgen, maak je een robuust systeem dat automatisch e-mails verstuurt bij nieuwe registraties, met gebruik van templates en beveiligingsmaatregelen.
provider: deepseek
model: deepseek-chat
Hier is een gestructureerde aanpak voor je PHP e-mailnotificatiesysteem: ## 1. Basis Script Structuur ```php <?php class EmailNotificatie { private $db; private $mailer; public function __construct($db_connection) { $this->db = $db_connection; $this->initMailer(); } private function initMailer() { // PHPMailer of native mail() configuratie // Gebruik SMTP voor betrouwbaarheid } } ?> ``` ## 2. Trigger Instellen (Gebruikersregistratie) ```php public function handleNieuweRegistratie($gebruiker_id, $gebruikersnaam, $email) { // Valideer en sanitize input $gebruiker_id = filter_var($gebruiker_id, FILTER_VALIDATE_INT); $gebruikersnaam = htmlspecialchars($gebruikersnaam); $email = filter_var($email, FILTER_VALIDATE_EMAIL); if (!$gebruiker_id || !$email) { return false; } // Controleer frequentie limiet if ($this->checkRateLimit($email)) { $this->sendWelkomEmail($gebruikersnaam, $email); $this->logVerzending($gebruiker_id, 'welkom_email'); return true; } return false; } ``` ## 3. E-mail Template Systeem ```php private function sendWelkomEmail($gebruikersnaam, $email) { $template = $this->loadTemplate('welkom_email'); $bericht = str_replace( ['<gebruikersnaam>', '<datum>'], [$gebruikersnaam, date('d-m-Y')], $template ); $onderwerp = "Welkom bij onze service, {$gebruikersnaam}!"; return $this->sendEmail($email, $onderwerp, $bericht); } private function loadTemplate($template_naam) { $template_path = "templates/{$template_naam}.html"; if (file_exists($template_path)) { return file_get_contents($template_path); } return "Welkom bij onze service, <gebruikersnaam>!"; } ``` ## 4. Beveiligingsmaatregelen ```php private function checkRateLimit($email) { $limiet_per_uur = 5; // Max 5 e-mails per uur per adres $timestamp = time() - 3600; $query = "SELECT COUNT(*) as count FROM email_log WHERE email = ? AND timestamp > ?"; $stmt = $this->db->prepare($query); $stmt->execute([$email, $timestamp]); $result = $stmt->fetch(); return $result['count'] < $limiet_per_uur; } private function validateEmail($email) { // DNS MX record check if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return false; } list($user, $domain) = explode('@', $email); return checkdnsrr($domain, 'MX'); } ``` ## 5. Gebruik in je Registratieproces ```php // In je registratie script: $emailNotificatie = new EmailNotificatie($db); $emailNotificatie->handleNieuweRegistratie( $nieuwe_gebruiker_id, $gebruikersnaam, $email ); ``` ## 6. Aanvullende Beveiliging - Gebruik SMTP authenticatie - Implementeer DKIM/SPF records - Voeg CAPTCHA toe bij registratie - Log alle e-mailverzendingen - Gebruik prepared statements voor database queries ## 7. Template Bestand (templates/welkom_email.html) ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Welkom bij onze service!</title> </head> <body> <h1>Welkom, <gebruikersnaam>!</h1> <p>Bedankt voor je registratie op <datum>.</p> <p>We hopen dat je onze service waardevol zult vinden.</p> </body> </html> ``` Dit systeem biedt een veilige en schaalbare oplossing voor automatische e-mailnotificaties met ingebouwde beveiliging tegen misbruik.