J'ai cherché une réponse et essayé beaucoup de choses à ce problème.
Mon script fonctionne très bien sur mon hébergeur mais lors du déplacement vers un autre serveur dédié, le courrier n'est jamais remis. Maintenant, je dois configurer le serveur SMTP, mais je ne comprends pas.
Utilisation des applications Gmail btw. Voici à quoi ressemble le code.
<?php
if(!$_POST) exit;
$email = $_POST['email'];
//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("@",$email )){
$error.="Invalid email address entered";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ('name','email','telephone','message');
$required = array('name','email','telephone','message');
$your_email = "[email protected]";
$email_subject = "New Messag: ".$_POST['subject'];
$email_content = "New message:\n";
foreach($values as $key => $value){
if(in_array($value,$required)){
if ($key != 'subject' && $key != 'telephone') {
if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
}
if(@mail($your_email,$email_subject,$email_content)) {
echo 'Message sent!';
} else {
echo 'ERROR!';
}
}
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "password"; // SMTP password
?>
Alors, comment puis-je définir les paramètres SMTP correctement?
Sous Windows uniquement: Vous pouvez essayer d'utiliser la fonction ini_set()
Docs pour le SMTP
Docs et smtp_port
Docs paramètres:
ini_set('SMTP', 'mysmtphost');
ini_set('smtp_port', 25);
Vérifiez votre php.ini, vous pouvez y définir ces valeurs.
Voici la description dans le manuel php: http://php.net/manual/en/mail.configuration.php
Si vous souhaitez utiliser plusieurs serveurs SMTP différents dans votre application, je vous recommande d'utiliser un framework de mailing "plus grand", p.e. Swiftmailer
Essayez de votre serveur dédié de telnet à smtp.gmail.com sur le port 465. Il pourrait être bloqué par votre fournisseur d'accès Internet