8725 sujets

Développement web côté serveur, CMS

Bonjour,


Sur mon site on peut me contacter depuis un formulaire, afin d'envoyer un mail. Ce mail est envoyé à 2 personnes. Le problème est que les mails arrivent souvent dans les spams sur aol (pas toujours), et certains n'arrivent pas chez le destinataire. Moi, étant chez yahoo je les reçois pratiquement toujours mais ça arrive que de temps en temps je n'en reçois pas ou qu'il arrive dans les spams...

Voilà comment ça se fait ? est-ce un problème au niveau de yahoo et aol ou au niveau du php ?

Je n'utilise pas de mail fait en html !
salut,

pour les envois qui n'arrivent jamais, tu devrais montrer le code php que tu utilises.
(as tu consulté la FAQ de ton hébergeur ?)

pour ceux considérés comme spam, je crois qu'il n'y a pas grand choses à faire, si ce n'est de demander à tes destinataires de valider l'adresse (ne plus la considérer comme spam)
Modérateur
Pour les spam, utiliser un serveur d'envoi propre et bien configuré aide généralement pas mal. Chez beaucoup d'hébergeurs mutualisé, la fonctions mail envoient les mails avec la méthode de la grosse brute assoiffée de sang. Et on peut bénéficier certaines fois des effets de bord des pratiques des personnes partageant le même hébergement…
a écrit :
pour les envois qui n'arrivent jamais, tu devrais montrer le code php que tu utilises.


Et pour les spams aussi(faille de sécurité)

Oui fais le, montre ton code !
Crousti2 a écrit :
Voilà comment ça se fait ? est-ce un problème au niveau de yahoo et aol ou au niveau du php ?
Il n'y a pas de raison que seuls certains messages soient reçu (il n'est par contre pas anormal que seuls certains mails passent en spam).

D'après les symptômes, le problème ne se situe pas au niveau de ton code PHP (les mails sont envoyés) mais bien du côté de la boite mail qui considère les message comme du spam.

Le mieux (et surtout le plus simple) à faire est d'ajouter l'adresse qui envoie (ça se configure dans la fonction mail() de php), si ce n'est pas déjà fait, et d'ajouter cette adresse à la "whitelist" de yahoo ou aol.
Bonsoir à toutes et à tous,

@ Laurie-Anne : il ne faut pas oublier que l'envoi d'un message se fait d'une boîte aux lettres serveur vers une boîte aux lettres récipiendaire. De cela, un message peut très bien être réceptionné pour une boîte récipiendaire mais pas pour une autre boîte récipiendaire.

Je prends comme exemple le protocole TLS.
Par exemple, si tu utilises le serveur "smtp.neuf.fr" sans protocole TLS pour l'envoi des messages, tu n'auras aucune difficulté avec la fonction mail() pour l'envoi d'un message vers cette boîte récipiendaire, ou tout autre ne gérant pas ce protocole TLS.

Mais cette fonction ne fonctionnera plus du tout, vers une boîte récipiendaire qui utilise le protocole TLS. Exemple : "smtp.gmail.com".

D'où le conseil de phpCbien d'utiliser la fonction phpmailer() qui gère parfaitement le protocole TLS. Et de cela, il n'y a plus aucun problème d'envoi de messages vers les boîtes gérant ou pas le protocole TLS.

Le spam, c'est autre chose. Cela dépend de la boîte de l'utilisateur qui autorise ou pas tel ou tel message.

@ tous : pour compléter cette analyse, il nous faudrait le code PHP de l'envoi des messages en identifiant la fonction gérant les mails et le serveur mail. De même, il nous faudrait les messages d'anomalies de la non réception des messages par le destinataire.

@+
C'est évident

+1 Artemus

Espérons que ça sera utile à certains ! Peut-être que la personne s'est fiée à laurie-anne et ai parti vérifier ses spams Smiley lol Smiley lol

Mais c'est logique qu'un courriel arrive à sa destination si depuis le script php l'envoi se fait depuis smtp avec authentification et que l'adresse de transfert ait POP et IMAP activés = 0 problèmes

c'est comme si on envoyait un courriel de boite sortante à boite entrante

J'ai intégré plusieurs fois phpmailer combiné à ckeditor pour l'envoi de newsletter full html.

JAMAIS de problème !

D'ailleurs petite astuce: Quelque soit le serveur, mutualisé ou non, il suffit de créer une adresse email gmail de transfert qui fera la jonction aux destinataires désirés.

Tiens une de mes rèf préférées Smiley langue

http://www.askapache.com/php/phpfreaks-eric-rosebrocks-phpmailer-tutorial.html


L'auteur est déjà parti ?
a écrit :
Ce mail est envoyé à 2 personnes.


C'est des potes ou des clients ?

Si c'est des potes, dis leur de configurer leurs boites mail pour que ton script arrive à bon port

....

ou si c'est des clients, suis mon conseil et pas celui de laurie-anne

Car si par la suite tu désire ajouter d'autres personnes, tu vas pas leur dire :"c'est la faute de vos boites email , mon code PHP est très bien"

Non, franchement Smiley cligne

Smiley dehors
Bonjour à tous !


Merci pour vos réponses, je pensais que le sujet était parti dans les oubliettes Smiley rolleyes


Du coups je ne sais pas trop quoi faire, puis je ne connais pas phpmailer, je vais m'informer, merci du lien !

a écrit :
C'est des potes ou des clients ?


Ce sont des gens que je connais donc je vais leur dire de configurer tout ça ^^

Sinon que dois-je modifier exactement ?

Voici le code tant attendu :


<?php
$message = "Message de : ".stripslashes($nom).", adresse mail : ".stripslashes($mail)."<br /><br />".nl2br(stripslashes($message))."";

$From  = "From:".stripslashes($mail)."\n";
$From .= "MIME-version: 1.0\n";
$From .= "Content-type: text/html; charset= utf-8\n";

$destinataire_a = "mail1@aol.com";
$destinataire_b = "mail2@yahoo.fr";

mail($destinataire_a, stripslashes($sujet), $message, $From);
mail($destinataire_b, stripslashes($sujet), $message, $From);
									
echo "<p class='green'><strong>Message envoyé !</strong></p><br /><br />";
?>
Salut

Premièrement ça sert à rien que tu exécute 2 fois la même méthode

Fais comme ceci :


mail('moi@mail.com,toi@mail.com',stripslashes($sujet),$mesage,$From);


Mais bon le problème vient plutot de l'adresse email du "from".
Si ce n'est pas une adresse config par ton serveur, ce n'est pas logique que ton mail arrive à destination

Bon, écoute, je vais te fournir un petit bout de code vite fait arrangé avec la classe phpmailer

Prends cette versiion ici

http://yabonlapub.com/lib_temp/

Elle est constituée de 2 classes

Une smtp (ne pas modifier)qui se connecte avec le port et l’hôte renseigné et qui de surcroit va vérifier si les informations de connexion à la boite mail distante sont correctes

La seconde(tu peux modifier certaines choses, j'y reviendrai Smiley cligne ) gère les headers, l'envoi, et la mise en forme du contenu, les vérifications des emails, et j'en passe Smiley eek .


1:Bon une fois que tu as dézippé le contenu:
2:tu ajoute les dépendances dans ton contrôleur ou je ne sais ou en haut de ton script php.
3:crée toi une adresse gmail puis dans configuration(activer IMAP)

include_once(chemin vers phpmailer DIR/class.phpmailer.php');



		$mail = new PHPMailer();
		$mail->IsSMTP(); // on active le proto SMTP
		$mail->SMTPAuth = true;     // Activation
		$mail->Host = "ssl://smtp.gmail.com:465"; // SMTP server->ici gmail port 465	
		$mail->Username = "tonadresseemail";
		$mail->Password = "passord de tonadresseemail";		 
		$mail->From = "tonadresseemail";
		$mail->FromName = "nom prénom";
		$mail->Sender="tonadresseemail";		
		$mail->AddAddress('$destinataire_a','a');	
                $mail->AddAddress('$destinataire_b','b');	
		$mail->Subject =$sujet;	

		
		$mail->charset = "utf-8";
		$mail->IsHTML(true);
                $mail->Body = $message;	

                //envoi try/catch

		if(!$mail->Send()){ //Teste le return code de la fonction
			echo $mail->ErrorInfo; 
			$message="une erreur est survenue";
		}
		else{	  
			$message="Merci, votre message a bien été envoyé !";
		}
		$mail->SmtpClose();
		unset($mail)

Modifié par phpCbien (02 Jun 2012 - 13:24)
Si ça intéresse des gens..

J'ai déjà configuré l'envoi de news html en masse vers xxx destinataires(membres inscrits ) sélectionnables à partir de checkboxes !!!!

Avec une petite modif dans la clase phpmailer + un ckeditor bien configuré + une méthode qui extrait les images de l'éditeur pour leur assigner un cid:image Smiley murf (cf doc) algorithme d'extraction, vous obtenez la combinaison parfaite pour un envoi html canon!!!

Pourquoi un cid? (y'en a marre de lire dans les boites mail : Voulez vous afficher les images ?) )
Bon....

on sait que les url des images doivent être absolues, c'est une chose..

Mais cela ne suffit pas, il faut la référence de l'image dans le mail.(CID)

Mais tout le monde s'en fout de c'que j'dis : Pas grave Smiley lol

Et toi, Crousti2, t'as essayé ma méthode ??

Tu peux me faire confiance Smiley cligne
Modifié par phpCbien (02 Jun 2012 - 14:57)
Bonjour phpCbien,

si tu veux utiliser le protocole TLS, tu peux mettre ceci :
/*-----------------------------*/
/* Caractéristiques du serveur */
/*-----------------------------*/

$mail->Host       = "smtp.live.com";
$mail->Port       = 587;
$mail->SMTPSecure = "tls";


@+
Modifié par Artemus24 (03 Jun 2012 - 13:46)
pour un mutualisé , autant passer par SSL

Pour chiffrer à la fois le transfert de commande et de données. Smiley langue

Après ça peut devenir tout un débat, je ne sais pas tout à propos de l'évolution de ces "protocoles de transport sécurisés" hormis le fais que SSL est l'ancienne appellation de TLS

OH J't'ai pas dit bonjour, artemus Smiley cligne
Modifié par phpCbien (03 Jun 2012 - 10:42)
Re-Bonjour phpCbien,

il n'y a pas de mal !

C'est cette écriture qui ne me plait pas :
$mail->Host = "ssl://smtp.gmail.com:465"; // SMTP server->ici gmail port 465	

Attention, je n'ai pas dis que cela ne fonctionne pas.

Si le protocole TLS ne te plait pas, tu peux mettre ceci :
/*-----------------------------*/
/* Caractéristiques du serveur */
/*-----------------------------*/

$mail->Host       = "smtp.live.com";
$mail->Port       = 465;
$mail->SMTPSecure = "ssl";

Chacun fait comme il veut !
@+
Modifié par Artemus24 (03 Jun 2012 - 13:50)
Voilà j'ai enfin testé tout ça, merci beaucoup ça fonctionne bien... par contre je l'ai fait avec yahoo et non gmail ^^ j'ai juste changé l'hôte.

Le seul problème c'est pour modifier le mail du destinataire... Parce que j'utilise cette fonction de mail pour la page contact de mon site... Donc en destinataire je mets mon adresse, et du coups en expéditeur l'adresse du visiteur ce qui pose problème avec cette méthode...