Reception aléatoire de mail

Petit nouveau ! | 5 Messages

26 févr. 2014, 19:47

Bonjour,

Je rencontre un problème ces derniers temps, je crée un site d’événementielle et pour chaque inscription à un événement l'utilisateur doit Valider son inscription à l’événement par mail. Mais le problème est que certaine personne ne reçoivent pas du tout le mail, d'autres oui, et d'autres au bout de plusieurs essaies le reçoivent. :evil:

J'ai commencé a coder avec la simple fonction mail() en php puis pour essayer de contourner le problème je suis donc passé à l'utilisation de phpmailer ( vous allez me dire pas grande différence ) à par que je passe maintenant par un smtp spécifique ( oui on peut le faire avec mail() mais plus rapide avec phpmailer =D ).

Mais le problème persiste ( même problème concernant l'inscription au site donc on peut retirer l'hypothèse de " si on envoie trop de mail sa bloque " comme la personne même au bout de 1 ça peut bloquer ! ). Donc je suis la pour exposer mon problème et si possible trouver des solutions.

Voici mon code php :
$sujet = "Activer l'inscription de l'evenement " . $_SESSION['nomEvent'];

$message = 'Bonjour ,
 
Vous allez activer l\'evenement : ' . $_SESSION['nomEvent'] . '
Le montant de l\'inscription est de : ' . $_SESSION['prixTotal'] . ' €
Veuillez cliquer sur le lien suivant pour valider votre inscription :
 
http://xxxxxxxxxxxxxxxxxxxx/activation.php?idEvent=' . urlencode($ajoutEvent->getId()) . '&cle=' . urlencode($cle) . '
 
 
---------------
Ceci est un mail automatique, Merci de ne pas y répondre.';

envoiMail($_SESSION['email'],$sujet,$message);

function envoiMail($adresseMail, $sujet, $message) {
    define('GUSER', '[email protected]'); // GMail username
    define('GPWD', 'xxxxxxx'); // GMail password
    $mail = new PHPMailer(); 
    $mail->IsSMTP();
    $mail->SMTPDebug = 0; 
    $mail->SMTPAuth = true; 
    $mail->SMTPSecure = 'ssl'; 
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 465;
    $mail->Username = GUSER;
    $mail->Password = GPWD;
    $mail->SetFrom('[email protected]', 'xxxxxxxxxx');
    $mail->Subject = $sujet;
    $mail->Body = $message;
    $mail->AddAddress($adresseMail);
    if (!$mail->Send()) {
        echo $error = 'Mail error: ' . $mail->ErrorInfo;
        return false;
    } else {
        echo $error = 'Message envoyer!';
        return true;
    }
}

Je précise je suis sur l'hébergeur online.

Merci d'avance,

Cordialement,

Doc Donkun

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 févr. 2014, 00:59

salut,

vue tes "précisions" je vais faire court
1/
'ai commencé a coder avec la simple fonction mail() en php puis pour essayer de contourner le problème je suis donc passé à l'utilisation de phpmailer ( vous allez me dire pas grande différence )
non phpmailer n'est conçu comme la fonction sur laquelle tu n'as pas la main et n'est configuré que dans le php.ini

phpmailer permet ce que tu utilise en réalisant une connexion "bas niveau" (socket) avec le protocole qui va bien sur le serveur mail.
la lib place aussi correct les entêtes histoire d'éviter de tomber dans les filtres spam mais cela peux arriver.

2/ un mail n'est pas assuré d'arriver c'est dans sa nature d'ailleurs le délais de réception n'est pas indiqué.
3/ est ce que les gens qui ne reçoivent les emails vérifient bien leurs dossier spam ?
4/ est ce que
" si on envoie trop de mail sa bloque "
ça c'est le serveur smtp (gmail en l'occurence) qui le détermine et pas toi.
as tu vérifier au prêt de google le volume que tu peux envoyer ? (cela reste une piste à vérifier au cas où).

est ce qu'il y a des messages d'erreur d'afficher ?

@+
Il en faut peu pour être heureux ......