problème pièce jointe fonction mail.

Mammouth du PHP | 558 Messages

19 mai 2023, 10:25

Bonjour,
je doit ajouter à mon message une voir parfois 2 pièces jointe,
Mon problème c'est que le message part quand il n'y a pas de pièces jointe mais des que je les ajoute le message est bloqué. part le serveur avant l'envoie.
Si vous avez des idées.
merci
code:

Code : Tout sélectionner

<?php $message=$_POST['message']; $sujet=$_POST['sujet']; $piece_jointe=$_POST['piecejointe']; $piecejointe1=$_POST['$piecejointe1']; if(file_exists($piecejointe) or file_exists($piecejointe1)) { $i=0; $mail=array('<hakazizi@********.com>','<hakazizi1976@g*******.com>'); $nbmail=count($mail); for($i=0; $i<$nbmail; $i++){ $boundary = md5(uniqid(microtime(), TRUE)); $entete='From:Hakim AZIZI <hakim@********.com>' . "\r\n" . 'Reply-To: Hakim AZIZI <hakim*******@hotmail.com>' . "\r\n" . 'Mime-Version: 1.0'."\r\n" . 'Content-Type: multipart/mixed; boundary='.$boundary .' '. "\r\n" . 'X-Mailer: PHP/' . phpversion(); "\r\n"; $objet="$sujet"; $message='--' . $boundary . "\r\n" . "Content-Type: text/plain;charset=utf-8" . "\r\n" . "Content-Transfer-Encoding:8bit" . "\r\n" . "$message" . "\r\n" ; $typedefichier = filetype($piecejointe); $tailledefichier = filesize($piecejointe); $ouverturedufichier = fopen($piecejointe, 'r') or die('File '.$piecejointe.'echec de l&apos;ouverture du fichier'); $contenudufichier = fread($ouverturedufichier, $tailledefichier); $contenudufichier = chunk_split(base64_encode($contenudufichier)); $fermetureduficier = fclose($ouverturedufichier); $message.= '--'.$boundary."\r\n"; $message.= 'Content-type:'.$typedefichier.';name='.$piecejointe."\r\n"; $message.= 'Content-transfer-encoding:base64'."\r\n"; $message.= $contenudufichier."\r\n"; $message.= '--'.$boundary."\r\n"; echo $message; $destinataire=str_replace(array('<','>'),'',$mail[$i]); if(mail($mail[$i],$objet,$message,$entete)){echo "le mail a bien été envoyé à $destinataire<br>";}else{echo "le mail n'a pas été envoyé à $destinataire<br>";} }}else{echo"les fichiers sont introuvables";} ?>
message d'erreur:
Warning: mail(): SMTP server response: 550 5.7.1 Spam Detected - Mail Rejected. Please see our policy at: http://postmaster.free.fr/#spam_detected in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\envoie-mail.php on line 40
explication de l'erreur:
550 spam detected
Explication
Vous avez cette erreur car le mail que vous avez envoyé a été analysé comme étant un spam par notre filtre antispam et il a été refusé lors de la reception.

Solution
Il peut être utile de commencer par vérifier que votre mail ne soit pas susceptible d'être confondu avec un spam, que ce soit en utilisant un logiciel antispam ou en vérifiant que votre mail est syntaxiquement correct et que vous n'utilisez pas de mécanismes qui puissent être confondus avec certaines méthodes de spammeurs.

Le cas échéant, nous vous invitons à nous signaler un faux positif en suivant cette procédure.

Mammouth du PHP | 2703 Messages

19 mai 2023, 14:54

il faut essayer avec https://github.com/PHPMailer/PHPMailer voir si cela passe mieux le filtre anti-spam.

Mammouth du PHP | 558 Messages

20 mai 2023, 08:38

Bonjour désolé pour le retard mais je préférerais me familiarisé plus avec la fonction mail() et surtout avec les entêtes.
Merci tout de même.
J'oubliait j'ai reçût une notification de message non remis sur l'adresse mail sur Gmail, quand j'envoie le mail sans pièce jointe.
<h********@gmail.com>: host gmail-smtp-in.l.google.com[66.102.1.26] said:
550-5.7.1 [212.27.42.4] Messages missing a valid messageId header are not
550 5.7.1 accepted. o18-20020a5d62d2000000b0030938285c3bsi373811wrv.613 -
gsmtp (in reply to end of DATA command)
après quelques recherche j'ai ajouté ses 2 entêtes
la variarible date est obtenu par date(r,time());
"Message-ID: <".md5(uniqid(time()))."@mailler1.lws-hosting.com>" . \r\n" .
"Date:$date" . "\r\n" .
Ensuite le message d'erreur à été modifier et la je ne comprend plus rien, merci de m'éclairer.
<h*********@gmail.com>: host gmail-smtp-in.l.google.com[66.102.1.26] said:
550-5.7.26 This mail is unauthenticated, which poses a security risk to the
550-5.7.26 sender and Gmail users, and has been blocked. The sender must
550-5.7.26 authenticate with at least one of SPF or DKIM. For this message,
550-5.7.26 DKIM checks did not pass and SPF check for [hotmail.com] did not
550-5.7.26 pass with ip: [212.27.42.4]. The sender should visit 550-5.7.26
https://support.google.com/mail/answer/ ... entication
for 550 5.7.26
instructions on setting up authentication.
o4-20020a1c7504000000b003f43beb9e2esi112525wmc.33 - gsmtp (in reply to end
of DATA command)