Envoyer un mail à plusieurs destinaire avec un script

Mammouth du PHP | 643 Messages

16 août 2015, 21:46

Salut à tous.
J'ai plusieurs adresse mail en bdd et j'aimerais envoyer des mails à ces adresse via une page php.
Comment éviter que ces courriers arrivent en spam.

Je suis à l'écoute si vous avez soit des tutos ou une expérience sur le sujet.
Merci à vous

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

16 août 2015, 22:16

Bonjour,

Si tu as relativement peu de destinataires et relativement peu de mails à leur envoyer, alors tu peux sans trop de problème envoyer des mails avec la fonction mail() depuis ton propre serveur PHP. Important : il faut que ce soit un serveur dédié ou virtuel qui ait une IP fixe dédiée à toi (et non partagée avec d'autres sites tiers).
Pour limiter le risque de spam, il faut que tu mettes en place à minima le dispositif SPF sur ton domaine pour authentifier ton serveur comme étant autoriser à envoyer des mails avec ton nom de domaine, cela permet de réduire le risque d'être considéré comme du spam.
Tu peux aussi mettre en place DKIM, c'est + complexe à mettre en oeuvre mais avec SPF+DKIM correctement configuré tu es sûr de ne pas être considéré comme du spam.

Si tu ne veux pas t'embêter avec ces aspects tu peux aussi passer par des services tiers comme mailchimp ou mailjet
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 643 Messages

16 août 2015, 23:06

Alors j'ai regarder effectivement les mailchimps et compagnie et il ne prennent pas en compte les adresse pro du genre info@....
et pour les mails j'en ai environ 15000 mais je faire des groupe et envoyer plusieurs fois avec cette fameuse fonction mail.
Je ne connais pas encore, mais le soucis est vraiment le SPAM

Mammouth du PHP | 643 Messages

17 août 2015, 07:01

j'ai regardé cette fonction mail qui ma foi est plutot simple mais mon problème et que mon server n'est pas dédié qu'elle est donc la solution ?
Ou je peut quand meme utiliser cette fonction mais risque d'etre spamer ou autre.....
Merci encore

Il me reste que les plateformes du gerne mailchimp ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

17 août 2015, 09:01

Alors j'ai regarder effectivement les mailchimps et compagnie et il ne prennent pas en compte les adresse pro du genre info@....
Bien sûr que si... qu'est-ce qui te fait dire qu'ils ne le gèrent pas ?
j'ai regardé cette fonction mail qui ma foi est plutot simple mais mon problème et que mon server n'est pas dédié qu'elle est donc la solution ?
Pour 15 000 destinataires pas le choix, soit tu prends un serveur dédié, soit tu passe par une solution tierce type mailchimp, mailjet, dolist, etc...
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 643 Messages

17 août 2015, 23:05

Je vais essayer d'envoyer à 30 contacts pour tester la fonction mail de php
Mais juste le tuto ne parle pas d'envoyer le mail à plusieurs destinataires j'ai donc le code suivant:
<?php

$mail = '[email protected]'; // Déclaration de l'adresse de destination.

if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
	$passage_ligne = "\r\n";
}
else
{
	$passage_ligne = "\n";
}

//=====Déclaration des messages au format texte et au format HTML.

$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";

$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";

//==========
// blabla
?>
Je souhaite envoyer à plusieurs destinataires j'ai donc essayer de modifier ma variable mail par mail to:
<?php

$maito = '[email protected], [email protected]'; // Déclaration de l'adresse de destination.

if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
	$passage_ligne = "\r\n";
}
else
{
	$passage_ligne = "\n";
}

//=====Déclaration des messages au format texte et au format HTML.

$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";

$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";

//==========

 

//=====Création de la boundary

$boundary = "-----=".md5(rand());

//==========

 

//=====Définition du sujet.

$sujet = "Hey mon ami !";

//=========

 

//=====Création du header de l'e-mail.

$header = "From: \"monsite.fr\"<[email protected]>".$passage_ligne;

$header.= "Reply-to: \"monsite.fr\" <[email protected]>".$passage_ligne;

$header.= "MIME-Version: 1.0".$passage_ligne;

$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;

//==========

 

//=====Création du message.

$message = $passage_ligne."--".$boundary.$passage_ligne;

//=====Ajout du message au format texte.

$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;

$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;

$message.= $passage_ligne.$message_txt.$passage_ligne;

//==========

$message.= $passage_ligne."--".$boundary.$passage_ligne;

//=====Ajout du message au format HTML

$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;

$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;

$message.= $passage_ligne.$message_html.$passage_ligne;

//==========

$message.= $passage_ligne."--".$boundary."--".$passage_ligne;

$message.= $passage_ligne."--".$boundary."--".$passage_ligne;

//==========

 

//=====Envoi de l'e-mail.

mail($maito,$sujet,$message,$header);

//==========

Mammouth du PHP | 2703 Messages

17 août 2015, 23:17

phphmailer ( https://github.com/Synchro/PHPMailer ) pour se faciliter la vie pour des mails avec de l'html.