Forum

You are not logged in.

#1 02-08-2016 02:21:56

Rauri
Membre
Registered: 02-08-2016
Posts: 4

Fonction Mail() en PHP

Bonjour,
J'aimerais de l'aide sur l'envoi de mail en PHP par la fonction Mail($Mail_Destinataire,$Objet,$Contenu,$Entete), aucune erreur n'est détecté, le mail parait bien envoyé mais au final je ne reçois aucun mail, mon code en local fonctionne tres bien, il n'y a aucune erreur et le mail est bien envoyé.
Ps: le mail est envoyé sur un compte hotmail et gmail.

Last edited by Rauri (02-08-2016 02:22:53)

Offline

#2 02-08-2016 10:30:26

@Héloïse
Staff
Registered: 03-03-2016
Posts: 206

Re: Fonction Mail() en PHP

Bonjour,

Vous devriez avoir plus d'informations grâce à des messages d'erreurs reçus sur la boîte mail émettrice du mail, celle associée à votre compte alwaysdata.

Offline

#3 02-08-2016 19:15:25

Rauri
Membre
Registered: 02-08-2016
Posts: 4

Re: Fonction Mail() en PHP

En effet j'ai reçu un message d'erreur sur ma boite mail alwaysdata, peux tu m'aider à résoudre cette erreur?
Voici - ci dessous le mail que j'ai reçu de votre part:

A message that you sent could not be delivered to all of its recipients.
This is a permanent error. The following address(es) failed:

  xxxxxxxxxxx@gmail.com
    Message blocked by the system administrator: block (bad rating score:
    3)
  xxxxxxxxxxx@hotmail.fr
    Message blocked by the system administrator: block (bad rating score:
    3)
Reporting-MTA: dns; smtpout1.roubaix1.alwaysdata.com

Action: failed
Final-Recipient: rfc822;xxxxxxxxxx@hotmail.fr
Status: 5.0.0

Action: failed
Final-Recipient: rfc822;xxxxxxxxxx@gmail.com
Status: 5.0.0


Est ce un  probleme si le mail d'expediteur soit modifié en PHP et devient autre qu'un compte alwaysdata?

Last edited by Rauri (02-08-2016 19:32:14)

Offline

#4 03-08-2016 09:26:27

@Héloïse
Staff
Registered: 03-03-2016
Posts: 206

Re: Fonction Mail() en PHP

Il nous faut un peu plus d'informations sur les erreurs pour vous répondre. Celles-ci sont données dans la source du mail.

Vous pouvez tout à fait changer l'adresse email expéditeur, c'est un changement à faire directement dans votre application.

Offline

#5 03-08-2016 19:39:06

Rauri
Membre
Registered: 02-08-2016
Posts: 4

Re: Fonction Mail() en PHP

Voici mon code, qui fonctionne très bien en local:

$expediteur='xxxxxxx@xxx.pf';
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'X-Priority: 1' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$headers .= 'From: xxxxxxx xxx <'.$expediteur.'>' . "\r\n";
$objet="xxxxxx";
$contenu = "<html>
                <head>
                    <title>$objet</title>
            </head>
            <body>
                    <p>Bonjour,</p>
                <p>xxxxx a été créé et est disponible du
                                <label style='color:blue;'><b>01/08/2016</b> </label> au
                                <label style='color:blue;'><b>01/09/2016</b></label>
                                sur le module.<br/>
                            Veuillez vous connecter sur ce <a href='www.xxxxxxxxx.xx'>lien</a>.</p>
                    <p>Cordialement,</p>
                <p><b>xxxxxx xxxxx<br/>xxxxxxx<br/>
                <img src='http://xxxxxxxxxxxxx.png'/><br/>Tel: xx.xx.xx.xx</b></p>
            </body>
            </html>";
if(mail($destinataire,$objet,$contenu,$headers))
{
    $_SESSION['message']=$msg_confirmation;
}
else
{
    $_SESSION['message']=$msg_erreur;
}

Lorsque je lance le programme, je reçois un message de confirmation comme quoi le mail a bien été envoyé alors que ce n'est pas le cas.

Offline

#6 04-08-2016 10:11:40

@Héloïse
Staff
Registered: 03-03-2016
Posts: 206

Re: Fonction Mail() en PHP

Ce n'est pas ce que je voulais dire. Dans le mail de retour reçu sur votre boîte mail alwaysdata, les raisons du retour de mail sont expliquées dans les sources de celui-ci :
X-alwaysdata-Spam-Report: Content analysis details:   (1.3 points, 5.0 required)
     pts rule name              description
    ---- ---------------------- --------------------------------------------------
     0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail
                                domains are different
     0.8 SPF_NEUTRAL            SPF: sender does not match SPF record (neutral)
     0.0 HTML_MESSAGE           BODY: HTML included in message
     1.7 HTML_IMAGE_ONLY_08     BODY: HTML: images with 400-800 bytes of words
    -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
                                [score: 0.0000]
     0.7 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts
     0.0 T_REMOTE_IMAGE         Message contains an external image
X-alwaysdata-Outgoing-Rating: Rating score: 3
    +1: SpamAssassin score: medium
    +1: Customer never paid
    +1: New customer
X-alwaysdata-ID: 161192999
X-alwaysdata-Outgoing-Permission: block (bad rating score: 3)


Le +1: New customer met quelques jours à disparaître. Le +1: Customer never paid est présent car vous avez un compte gratuit et n'avez jamais alimenté votre compte.

Vous pouvez aussi sûrement gagner des points grâce aux points donnés par SpamAssassin en travaillant sur votre mail.
L'important est d'avoir la plus petite note possible pour que votre mail parte de nos serveurs. Il ne partira pas avec une note supérieure à 3. Voici l'article de notre documentation présentant des bonnes pratiques pour la délivrabilité de vos emails : https://help.alwaysdata.com/my-account/ … verability.

Offline

#7 04-08-2016 22:22:31

Rauri
Membre
Registered: 02-08-2016
Posts: 4

Re: Fonction Mail() en PHP

Voici exactement ce que j'ai reçu dans ma boite mail alwaysdata:

http://image.noelshack.com/fichiers/201 … apture.jpg

@alwaysdata.net

Last edited by Rauri (04-08-2016 22:26:44)

Offline

#8 15-02-2017 10:06:13

hawat38
Membre
Registered: 15-02-2017
Posts: 6

Re: Fonction Mail() en PHP

Bonjour,

je me permets de rebondir sur cette discussion car je rencontre le même problème : le mail semble être bien envoyé, seulement aucune réception du côté client. Plus étrange, j'avais créé un tout premier site de test, sur lequel l'envoi de mail fonctionnait parfaitement. J'ai donc créé un autre site avec un nom de sous domaine plus approprié à mon projet, pensant simplement que je n'aurais qu'à copier/coller les fichiers existants, et étrangement l'envoi de mail ne fonctionne plus.
Autre chose très étrange, sur mon premier site, je trouve un fichier .env.php5. et un répertoire cgi-bin, que je ne trouve plus sur mon deuxième site. Est-ce normal ?

Le contenu de ma boite mail sur "webmail" est vide sur mes 2 comptes.

Je précise également que lorsque je testais l'envoi de mail sur mon premier site en Novembre 2016. L'essai pour nouveau site a été fait en Janvier 2017. Peut-être il y a eu des mises à jour ou des modifications sur alwaysdata qui pourraient expliquer ce comportement ?

Je suis preneur de toute information utile.

Pour information :
1er site :
webmail : kfoot@alwaysdata.net

2ème site:
webmail : sygsyp@alwaysdata.net

Merci d'avance pour votre réponse.

Cordialement.

Offline

#9 15-02-2017 16:19:47

@Héloïse
Staff
Registered: 03-03-2016
Posts: 206

Re: Fonction Mail() en PHP

Bonjour,

C'est ici un autre problème, pour lequel nous venons de faire une manipulation. Je vous invite à réessayer l'envoi sur sygsyp.

hawat38 wrote:

Autre chose très étrange, sur mon premier site, je trouve un fichier .env.php5. et un répertoire cgi-bin, que je ne trouve plus sur mon deuxième site. Est-ce normal ?

Oui ça l'est, vous êtes sur un autre serveur mutualisé bénéficiant d'une version logicielle plus récente. Ces fichiers sont maintenant accessible dans le dossier ~/admin/config.

Offline

#10 16-02-2017 10:25:47

hawat38
Membre
Registered: 15-02-2017
Posts: 6

Re: Fonction Mail() en PHP

Bonjour ,

Tout d'abord je vous remercie pour votre réactivité !

Depuis votre manipulation, je reçois exactement des messages sur mon webmail.
C'est exactement le même message que @Rauri (voir image ci-dessous). Avez-vous résolu son problème ?

Merci d'avance pour votre réponse.

Cordialement.

capture_erreur.PNG

Offline

#11 16-02-2017 10:59:39

@Héloïse
Staff
Registered: 03-03-2016
Posts: 206

Re: Fonction Mail() en PHP

Bonjour,

Oui , voici l'erreur dans votre cas :

Le  mail a été considéré par notre système antispam comme possiblement malveillant, et a donc été bloqué. Plusieurs facteurs ont contribué :

  • vous êtes un nouveau client ;

  • vous n'avez jamais payé ;

  • votre mail est jugé à risque, notamment parce que :

    • votre sujet contient des caractères 8 bits et d'autres illégaux au lieu d'être encodé MIME (règle SUBJ_ILLEGAL_CHARS),

    • votre message contient du HTML sans le tag (règle HTML_MIME_NO_HTML_TAG),

    • votre message n'a pas la partie alternative de texte brut (règle MIME_HTML_ONLY).


Je vous invite à corriger ces derniers points, vos mails pourront alors bien partir.

Offline

#12 16-02-2017 13:22:44

hawat38
Membre
Registered: 15-02-2017
Posts: 6

Re: Fonction Mail() en PHP

Très bien, je vais y remédier.

Merci.

Offline

#13 04-06-2017 18:19:16

tnod8
Membre
Registered: 04-06-2017
Posts: 1

Re: Fonction Mail() en PHP

Je répond un peu tardivement mais voila ce que j'utilise pour mon formulaire de mail.
Jusqu'à présent cela fonctionne bien, j'ai ajouté un nb d'envoi de mail limite mais ça serai plus sécure de mettre un captcha.

<?php
// Je vérifie les données ($data) envoyé via le POST avec htmlentities pour convertir tous les caractères éligibles en entités HTML
function VerifData($data){
    foreach ($data as $index => $valeur){
        $data2[$index ]=htmlentities($valeur);
    }return $data2;
}

// Je stocke le résultat de $VerifData dans ma variable
function Mail($data){
    $data = VerifData($data);

    //Si ma session n'existe pas ou si je n'ai dépassé le nb de mail autorisé, j'envoie le mail.
    if(isset($_SESSION['mail'])==false or $_SESSION['mail']<5) {
        SendMail($data);
    }else{
        echo"ça sent le SPAMMEUR";
    }
}


// Je prepare mon envoie de mail
function EnvoiMail($data){
   
    $to = "destinataire";
    $subject = "sujet"; 
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html; charset=UTF-8"."\r\n";
    $headers .= "From: monformulairemail"."\r\n";
    $messages="Nom: ".$data['nom']."<br/>Prénom: ".$data['prenom']."<br/>email: ".$data['email']."<br/>Sujet:<b/>".$data['sujet']."<br/>Message: ".$data['message']."<br/>";
   
    mail($to,$subject,$messages,$headers);

    //Si ma Session n'éxiste pas je l'initialise a 0 et j’incrémente
    if (isset($_SESSION['mail'])==false){
        $_SESSION['mail']=0;
    }
    $_SESSION['mail']++;
    echo "Message envoyé";
}

Et voila c’est tout, ya plus ka appeler ma fonction Mail

Si vous avez des commentaires ou des améliorations hésitez pas.

Offline

Board footer

Powered by FluxBB