Problème d'envoie mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'envoie mail

par romain35 » 16 mars 2008, 18:38

J'ai essayer avec vos poste pour voir si cela marché mes
cela n'a pas marcher je reçois toujours l'email et non
la personne inscrit.

Cordialement
romain
++

par Hywan » 16 mars 2008, 18:36

Et que se passe-t-il ? Tu as une erreur ? Tu as réussi ? Essaye d'y mettre un peu du tien et de développer un tant soit peu s'il te plaît.

par romain35 » 16 mars 2008, 18:32

Bonjour,

voici ou j'en suis :
<?
	$recipient = $result["email"] . "<" . $result["email"] .">";
    $recipient1 = "[email protected]";
	$subject = "Bloc-Annuaire - Confirmation de votre Sponsoring";
	
	$content  = "Bonjour,\n";
	$content .= "\n";
	$content .= "Blablablablabla http://www.bloc-annuaire.fr\n";
	$content .= "\n";
	$content .= "Voici un récapitulatif de vos données\n";
	$content .= "Identifiant : ".$DATAS."\n";
	$content .= "Code Allopass : ".$RECALL."\n";
	$content .= "\n";
	$content .= "Vous serez Sponsor jusqu'au : ".date('d/m/Y', $date_fin)."\n";
	$content .= "\n";
	$content .= "\n";
	$content .= "Blablablablablablablabla\n";
	$content .= "\n";
	$content .= "Les différents liens :\n";
	$content .= "Blablablablablablablabla\n";
	$content .= "Blablablablablablablabla\n";
	$content .= "\n";
	$content .= "Blablablablablablablabla\n";
	$content .= "\n";
	$content .= "Cordialement, Le Webmaster\n";
	$content .= "http://www.bloc-annuaire.fr\n\n";
	$content .= "E-mail automatique\n";
	$content .= "(Ne pas répondre a ce message)\n";
   
	$headers  = "From: [email protected]<[email protected]>\n";
	$headers .= "X-Sender: <[email protected]>\n";
	$headers .= "Return-Path: <[email protected]>\n";
	$headers .= "Error-To: <[email protected]>\n";
	$headers .= "X-Mailer: PHP\n";
	$headers .= 'To: '.$recipient . "\r\n";

    mail($recipient, $subject, $content, $headers);
    mail($recipient1, $subject, $content, $headers); 

?>
Cordialement
romain
++

par Cyrano » 14 mars 2008, 16:57

Qu'en la personne s'inscrit ça fonctionne mes le message au lieux de l'envoyé au destinataire c'est moi qui reçois le message à la place.
Fais-donc voir ton code actuel histoire qu'on comprenne un peu ce que tu fais parce que là, je sens la lassitude qui me gagne :-k

par Hywan » 14 mars 2008, 15:38

on te laissera mariner dans ta sauce :evil:
Et on te mangera :twisted:.

(attention, Cyrano a déjà tué un développeur pour moins que ça ; le type n'avait pas documenter son code, je te conseille d'être poli avec lui ;-))

par romain35 » 14 mars 2008, 15:38

Qu'en la personne s'inscrit ça fonctionne mes le message au lieux de l'envoyé au destinataire c'est moi qui reçois le message à la place.

Cordialement
romain
++

par Cyrano » 14 mars 2008, 15:35

Tu fait un coq-à-l'âne assez foudroyant :shock:
Au départ, tu ne sais pas quoi mettre dans les en-tête mais finalement maintenant tu n'arrives pas à envoeyr ton message... Faudrait savoir ! On va t'aider si tu y mets un tout petit peu du tiens, sinon, on s'occupera des autres et on te laissera mariner dans ta sauce :evil:

par romain35 » 14 mars 2008, 15:32

En faite le code pour envoyé un mail serre pour envoyé un message de confirmation au destinataire et
sais juste pour l'envoie du mail automatique que j'ai un problème pour envoyé à la personne inscrit
avec c'est identifient etc...

Cordialement
romain
++

par Cyrano » 14 mars 2008, 14:23

Je me demande si tu as bien saisi le principe de fonctionnement quant aux destinataires de ton message.

-1- Le seul paramètre de destinataire obligatoire, c'est le premier paramètre de la fonction mail().

-2- Tu n'as aucune obligation d'envoyer une quelconque copie de ce message à d'autres destinataires, mais tu tu le souhaites, c'est possible avec les en-tête Cc et/ou Bcc. Tu choisis si tu veux envoyer cette copie en la masquant au destinataire principal ou non. Si tu ne souhaites pas la masquer, alors tu utilise l'entête Cc: adresse-autre-destinataire (Cc = Conform Copy / Copie conforme). Si au contraire tu veux envoyer une copie sans que le destinataire principal n'en soit informé, alors utilise Bcc: adresse-autre-destinataire.(Bcc = Blind Conform copy = Copie conforme cachée)

Lorsque tu envoies un message avec ton client de courrier habituel (Outlook, Thunderbird), tu peux envoyer à un ou plusieurs destinataires. Lorsque tu reçois un message, tu vois s'il a été envoyé à d'autres que toi en voyant les autres adresses auxquelles le message a été également envoyé. Mais si l'expéditeur a utilisé le Bcc, alors tu ne sauras pas que d'autres que toi ont reçu ce message. Ici, c,est exactement la même chose.

Donc si tu ne sais pas quoi mettre, pose-toi la question autrement : as-tu besoin d'envoyer une ou plusieurs copie(s) ? As-tu besoin d'envoyer d'autres en-têtes ? N'oublie pas, les quatrième et cinquième paramètres de la fonction mail() sont optionnels.

par romain35 » 14 mars 2008, 13:08

Bonjour,

je vous en remercie beaucoup pour votre aide, votre patience.

J'ai une autre question concernant le problème d'envoi automatique au membre de mon site.

Dans la partie bah du code j'ai mis ceci:

<?php 
        $recipient = $result["email"] . "<" . $result["email"] .">";
        $recipient1 = "[email protected]";
        $subject = "Bloc-Annuaire - Confirmation de votre Sponsoring";

        $content = "\n\n\n\n\n" .
           'Identifiant : ' . $DATAS . "\n" .
           'Code Allopass : ' . $RECALL . "\n\n" .
           'Vous serez sponsor jusqu\'au : ' . date('d/m/Y', $date_fin) .
           "\n\n\n\n\n\n\n\n\n\n\n" .
           '-------' . "\n\n" .
           'E-mail automatique (ne pas répondre à ce message)' . "\n";

        $headers  = "From: [email protected]<[email protected]>\n";
	$headers .= "X-Sender: <[email protected]>\n";
	$headers .= "Return-Path: <[email protected]>\n";
	$headers .= "Error-To: <[email protected]>\n";
	$headers .= "X-Mailer: PHP\n";
	$headers .='Bcc:'.$mailCache."\n";
        $headers .='cc:'.$mailCopy."\n"; 
?>
Mes la je ne c'est pas quoi mettre dans le code à la place de Bcc et cc !

Et est ce que j'ai bon en haut du code pour l'envoie du mail automatique au membre.

Je vous en remercies d'avance pour votre aide.

Cordialement
romain
++

par Hywan » 14 mars 2008, 01:47

Juste au passage, tu peux optimiser ton code de façon évidente.

Premièrement, n'utilises pas les short_tags (<?) mais plutôt sa syntaxe longue (<?php), ça évite des conflits, des problèmes de distributivité et de sécurité.

Deuxièmement, préfère utiliser les guillemets simples (') plutôt que les doubles ("). C'est plus rapide pour PHP. Un des avantages des guillemets doubles est que l'on n'a pas besoin de concaténer les variables, mais comme tu le fais, tu perds cet avantage et ne récupère que les inconvénients ... Il faut jeter un œil dans la documentation pour mieux comprendre, tu devrais y faire un tour : les chaînes de caractères (guillemets simples, doubles, et syntaxe hereDoc au programme).

Troisièmement, la concaténation est pratique, mais lourde, surtout quand on l'utilise un peu comme un cochon de sa queue ! Je m'explique : tu fais une concaténation par retour à la ligne (\n). Ne serait-il pas plus sage de tout mettre dans une seule chaîne ? Je propose :
$content = "\n\n\n\n\n" .
           'Identifiant : ' . $DATAS . "\n" .
           'Code Allopass : ' . $RECALL . "\n\n" .
           'Vous serez sponsor jusqu\'au : ' . date('d/m/Y', $date_fin) .
           "\n\n\n\n\n\n\n\n\n\n\n" .
           '-------' . "\n\n" .
           'E-mail automatique (ne pas répondre à ce message)' . "\n";
Tu gagnes en hauteur, en lisibilité, en temps, en mémoire etc. Certes, ce n'est pas la méthode la plus rapide, mais c'est déjà nettement mieux. J'en ai profité pour corriger une petite faute (« a ce message » vers « à ce message »).
Mais (et j'insiste) ce n'est pas la bonne façon de mettre en page un mail ! Déjà, c'est pas très accessible (le synthétiseur vocal va lire 25 lignes, ultra lourd) et le mail commence 5 lignes plus bas, on ne comprend pas pourquoi, moi je penserais à un bug. Pourquoi ne pas faire un petit paragraphe, un espèce de liste, et 2 lignes plus bas, le pied de mail (« E-mail automatique [...] » ? Ce serait vraiment plus simple ... Ce n'est pas un conseil technique mais ... ergonomique dira-t-on. C'est du côté de la pratique, un conseil donc :). Le fait de mettre un paragraphe peut présenter l'auteur du mail (« Bonjour, vous recevez cet email parce que vous ... »), et permet d'introduire la liste de l'identifiant, code allopass et autre truc. Mieux non ?

par Cyrano » 13 mars 2008, 22:30

En d'autres termes : la fonction mail() attend certains paramètres :
-1- Le destinataire principal;
-2- Le sujet du message;
-3- Le contenu du message;
-4- En option des en-têtes supplémentaires;
-5- En option aussi des paramètres supplémentaires.

Le point à observer, c'est le 4ième : en en-tête, tu peux par exemple envoyer ton message en plus en copie ou en copie cachée au choix. Il y a d'autres en-têtes possibles mais le point sur lequel tu bloques pour l'instant est celui-ci.

Dans la doc, regarde l'exemple n°4 en particulier les en-tête. ;)

par dunbar » 13 mars 2008, 21:23

Salut,
Ce que cyrano veux dire est de supprimer une des lignes suivante ;
mail($recipient, $subject, $content, $headers); 
mail($recipient1, $subject, $content, $headers); 
et ajouter une copie ou copie caché, un truc du genre.
$headers .='Bcc:'.$mailCache."\n";                               //----> Copie caché <-----//
$headers .='cc:'.$mailCopy."\n";                                 //----> Copie Mail <-----//
a+ :wink:

par romain35 » 13 mars 2008, 20:44

Désolé mes la je ne comprend plus je sèche !

Cordialement
romain
++

par Cyrano » 13 mars 2008, 20:27

Alors tu n'as pas du bien regarder puisque tu fais deux expéditions séparées au lieu d'une seule pour les deux destinataires...