problème avec mail de masse

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 avec mail de masse

Niouz et pic

par bigfloooow » 28 déc. 2005, 11:00

Oui la "recherche " du forum pour mon souci n'a rien donnée :
voila mon code :

$donnees_html = file_get_contents('page.htm');


$site = 'www.monsite.net';
$mail_admin = '[email protected]';
$from="[email protected]";
$subject = "Newsletter example.com - ".date("d.m.Y",mktime());


$entete = "MIME-Version: 1.0\r\n";
$entete .= "From: $site<$mail_admin>n";
$entete .= "X-Sender: <$mail_admin>n";
$entete .= "X-Mailer: PHPn";
$entete .= "Return-Path: <$mail_admin>n";
$entete .= "Content-Type: text/html; charset=iso-8859-1n";


$format = 'HTML';

$subject = "Coucou!";



$sql = "SELECT email FROM test";
$req = mysql_query($sql);

// Envoie du mail
while ($data = mysql_fetch_array($req))
{
$a=mail($data['email'], $subject,$donnees_html,$entete);
//$a=mail($data['email'],$sujet_final,$codehtml,"From: $mail_admin\nReply-To: $mail_admin\nContent-Type: text/html; charset=\"iso-8859-1\"\n");


//mail($data['email'],$sujet_final,$message_final,$entete);
if($a == TRUE)
{
echo "<center><b>".$data['email']." a reçu l'email ! n";
}
}

Ok tout n'est pas optimisé mais je recoit bien la page html sur ma boite hotmail mais pas l'image, pourtant elle bien placée sur le serveur et juste à coté de de page.htm (le chemin de l'image est : <img src="test.jpg">

je travaille en locale avec apache.

Merci

par Nico128 » 27 déc. 2005, 17:59

quelles images ?

Sinon pour ceux qui utilisent PhpBB (comme moi) et qui ont ce problème, il existe un mod qui s'apelle Mega Mail

Re: images et newsletter

par Truc » 27 déc. 2005, 16:55

Salut,
Qlq peut m'aider ?
Oui la fonction Recherche du forum peut-être!!

images et newsletter

par Et les images ? » 27 déc. 2005, 14:41

Salut à tous et d'abord.. bonnes fêtes !!

moi aussi je test de la niouzletter, ca envoie la page html mais pas les images avec ?!!
Qlq peut m'aider ?
merci

par Nico128 » 10 déc. 2005, 15:12

Salut ! Oui je m0en suis sorti...pas de la meilleur facon mais ca marche quand meme...

J'ai créé une page avec le formulaire :

Code : Tout sélectionner

<form name="form" method="post" action="email-ok"> <table width="59%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><br> <input name="titre" type="text" value="" size="100"> <br> <br> <textarea name="texte" cols="75" rows="20"></textarea></td></tr> </table> <br> <input type="submit" name="Submit" value="Envoyer"> <br> </form>
Puis une page apeler "email-ok.php" et jai mis le code :
					<?
$db = mysql_connect('localhost', 'login', 'mdp');
mysql_select_db('la base de donné',$db);
$sql = 'SELECT user_email FROM phpbb_users';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$compteur=0; // <= compteur Wink

while($data = mysql_fetch_assoc($req))
    {
       // on affiche les informations de l'enregistrement en cours
       $to = $data['user_email'];
       $subject = $_POST['titre'];
       $message =  nl2br($_POST['texte']);
       $headers  = "MIME-Version: 1.0\r\n";
       $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
       $headers = "From: legend-nintendo.com <[email protected]>\r\n";
       mail($to, $subject, $message, $headers);

       if($compteur == 50)
       {
            sleep(1);
            $compteur=0;
       }
       $compteur++;
    }
mysql_close();
?>
Pour toi, oublie pas de faire quelques modifs. Par example le lien action="" du formulaire, il faut mettre le lien de la page qui contient le php.

Pour la page en php, n'oublie pas de mettre tes infos pour se connecté a la base de donné. Si ton forum utilise un autre prefixe que phpbb_ fait aussi le changement.

Voilà, tient moi au courant si ca marche

Ah oui, et en bas dans la fonction mail() change aussi le "from : legend-nintendo.com........" par ton site et ton email

par Outamitetong » 09 déc. 2005, 18:17

Bonjour everybody,

Nico128, j'ai les mêmes besoin que toi, j'ai une liste de 1000 mails environ et je dois envoyer une niouzeletter au format html à toutes ces personnes, je ne comprends pas tout au php, je suis plutôt graph' moua.

Est-ce que tu t'en es sorti avec ton code ? :D

Merci d'avance

par Nico128 » 03 déc. 2005, 20:41

Merci...mais cest encore trop compliqué pour moi...donc je vais pas esssayé plus loin memem si cest plus pratique...

par Ripat » 03 déc. 2005, 09:21

La syntaxe de Pear est assez simple. Il faut, bien sûr installer la petite librairie Pear. Ensuite, voici le genre de code pour envoyer un même mail à toute une liste de destinataires en n'ouvrant qu'une connexion smtp:
include('Mail.php'); // classes Pear

$recipients = '[email protected], [email protected], [email protected], [email protected]';

$headers['From']    = '[email protected]';
$headers['To']      = $recipients;
$headers['Subject'] = 'Message TEST';
    
$body = 'Bonjour !';

$params['host'] = 'ton.host.fr';
    
$mail_object =& Mail::factory('smtp', $params);

$mail_object->send($recipients, $headers, $body);
Et c'est tout!

D'autres exemples:
http://www.hudzilla.org/php/15_5_3.php

par Truc » 03 déc. 2005, 01:33

je ne suis pas le mieux placé pour te parler de pear alors je ne peux te conseiller plus que ça...

mais en ce qui concerne ton code tu concatènes l'ancienne adresse mail a la nouvelle a chaque tour de boucle. Il faut enlever le point qui est devant le =
$to .= $data['user_email'];
a savoir aussi que tu peut envoyer plusieurs mail a la fois avec une virgule entre les adresses mail, puis envoyer par paquet. Encore une fois c'est la fonction mail() n'est pas la meilleure.

par Nico128 » 02 déc. 2005, 23:09

J'ai essayé de mettre ça mais ya un ptit poblème....

voila le code
					<?
$db = mysql_connect('localhost', 'xxxxx', 'xxxxxxx');
mysql_select_db('xxxxxx',$db);
$sql = 'SELECT user_email FROM phpbb_users';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$compteur=0; // <= compteur Wink

while($data = mysql_fetch_assoc($req))
    {
       // on affiche les informations de l'enregistrement en cours
       $to .= $data['user_email'];
       $subject = $_POST['titre'];
       $message =  nl2br($_POST['texte']);
       $headers  = "MIME-Version: 1.0\r\n";
       $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
       $headers .= "From: legend-nintendo.com <[email protected]>\r\n";
       mail($to, $subject, $message, $headers);

       if($compteur == 50)
       {
            sleep(1);
            $compteur=0;
       }
       $compteur++;
    }
mysql_close();
?>
J'ai envoyé un message, mon adresse email la bien recu, c'est la 1er étant donné que je suis admin

Mais après jai ressu plein de mail de postmaster :
The following addresses had permanent fatal errors -----
[email protected]@[email protected]@[email protected]@hotmail.com
Je comprend pas pourquoi les email sont coller ensemble...

J'ai recu 79 mail comme ça...pour 2171 membres

par Nico128 » 02 déc. 2005, 20:42

Merci, mais j'y comprend rien du tout :shock:

C'est a nous de créer le script ? quand on la télécharger il faut modifier quoi ?

par Ripat » 27 nov. 2005, 10:26

Très bonne idée ! Fallait y penser :D

pour Ripat j'ai déja vu sa sur d'autres posts, j'ai télécharger juste pour voir ce que c'est, déja cest de l'anglais mais le pire je sait meme pas ce que cest ^^

j'ai pu comprendre que cest pour le smtp, ou qqch du style ? Si tu pouvais m'expliquer son fonctionement ca serait sympa :D

merci
La doc est même en français : http://pear.php.net/manual/fr/package.m ... .intro.php

par Moosh » 26 nov. 2005, 22:01

PEAR::MAIL et ses sous package gère vraiment très bien ca.


surtout mail_queue

par Nico128 » 26 nov. 2005, 20:58

Très bonne idée ! Fallait y penser :D

pour Ripat j'ai déja vu sa sur d'autres posts, j'ai télécharger juste pour voir ce que c'est, déja cest de l'anglais mais le pire je sait meme pas ce que cest ^^

j'ai pu comprendre que cest pour le smtp, ou qqch du style ? Si tu pouvais m'expliquer son fonctionement ca serait sympa :D

merci

par Truc » 26 nov. 2005, 20:48

le compteur c'est une facon de parler :wink:
<?
$db = mysql_connect('localhost', 'xxxxxx', 'xxxxx');
mysql_select_db('xxxxxx',$db);
$sql = 'SELECT user_email FROM phpbb_users';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$compteur=0; // <= compteur ;)

while($data = mysql_fetch_assoc($req))
    {
       // on affiche les informations de l'enregistrement en cours
       $to .= $data['user_email'];
       $subject = 'le titre';
       $message = 'le texte';
       $headers  = "MIME-Version: 1.0\r\n";
       $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
       $headers .= "From: monsite.com <[email protected]>\r\n";
       mail($to, $subject, $message, $headers);

       if($compteur == 50)
       {
			sleep(1);
			$compteur=0;
       }
       $compteur++;
    }
mysql_close();
moins de perte en temps deja :wink: