Beste PHPhulp leden,


Wie o wie kan mij op weg helpen met het volgende probleem.
Ik maak gebruik van de PHP mailer class.

Deze word pas geactiveerd als er geen fouten zijn zoals lege velden, een emailadres niet geldig is etc.
Daarnaast zal een juist woord moeten worden ingevuld bij anti-spam


<?php
//voor alle velden is er een check zoals hieronder
if(isset($_POST['captcha'])){
		$days_NL = array('zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag');
		if(trim($_POST['captcha']) == ''){
			$errors[] = 'Vul een woord in bij anti-spam.';
		}elseif(strtolower($_POST['captcha']) !== $days_NL[date('w')]){
			$errors[] = 'Vul een ander woord in bij anti-spam.';
		}
	}
?>


Vervolgens word er gekeken of er errors zijn in de array, als dit 0 is dan mag de mailer worden geactiveerd.

<?php
if(count($errors) > 0){
	$response['status'] = 'errors';
    $response['errors'] = $errors;
}else{
	if(mailer($_POST['name'], $_POST['emailaddress'], $_POST['phone'], $_POST['subject'], $_POST['message'])){
		$response['status'] = 'success';
	}else{
		$response['status'] = 'errors';
    	$response['errors'] = array('Er is een fout opgetreden!');
	}
}
?>



Het ingevulde emailadres word als reply gebruikt

<?php
$mail->addReplyTo($emailaddress, $naam);
?>


Soms komt het voor (1x in 2 maanden) dat ik een mail krijg van de mailer met geen enkele informatie.
Het emailadres voor de reply is dan mijn eigen emailadres omdat deze dan ook leeg is.

Is dit nu een geval van spam of een systeem dat mijn mailer kan afvuren?

Dit zou betekenen dat alle errors genegeerd worden dan?
waarom mag volgens jou een mailadres na het @teken maar 1 punt bevatten?

}elseif(!preg_match('/(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z]+$)/', $_POST['emailaddress'])){
$errors[] = 'Het ingevulde e-mailadres is niet geldig.';

Ik heb zelf een mailadres [email protected] en dat komt dus niet door jouw check.
Maar ook [email protected] heeft volgens jou een ongeldig adres?

waarom gebruik je niet de filter_input functies? Daar wordt met FILTER_VALIDATE_EMAIL een hoop extra getest, wat je nu allemaal mist.

Reageren