Support et annonces PhpMyNewsLetter.
Vous n'êtes pas identifié(e).
Bonjour stfusion2002, je te souhaite la bienvenue sur le forum de support.
Tu as juste mal saisi un paramètre, tu as choisi le socket de connexion à la base pour le module php au lieu de mettre le nom du host.
Un host chez 1and1 a un nom du style db123456789.db.1and1.com que tu dois avoir dans ton interface de gestion de ton espace web, à supposer que tu sois bien en mutualisé, et non localhost:/tmp/mysql5.sock
Note également bien que tu devras spécifié que tu es sur un serveur mutu et non dédié ! Très important.
J'ai plusieurs personnes qui m'ont remonté un bon usage en mutu 1and1.
Nettoie tout et recommence l'installation.
Tiens nous au courant stp.
Arnaud
Bonjour Sille,
Et bienvenue sur le forum ! Pose toutes les questions, j'essaierai d'y répondre le plus clairement possible.
Allez, première réponse :
Tu n'as pas de bug.
PhpMyNewsLetter (on dira PMNL c'est plus rapide) permet de gérer des listes. Ces liste sont un ensemble d'abonnés (mails) destinataires d'un certain type de newsletter.
Exemple : (et c'est ce que je recommande) une liste de tests ! Oui on teste ! Il faut tester !!! Dans cette liste tu auras quelques adresses mail à toi, qui te permettront de voir comment réagissent les hotmail, gmail yahoo et consorts à la réception de tes mails (spam ou pas ?)
J'ai un exemple en tête : un marchand ambulant de légumes bio (cas réel qui utilise pmnl dans ma région) a fait une lliste par village : chaque village représente un marché différent dans la région.
Il ne parle pas aux villageois X comme aux villageois Y, en fonction du jour, des prix, etc...
Il a donc :
- liste de test
- liste village X
- liste village Y
- liste village Z
- liste générale.
La liste général est une liste dans laquelle il a regroupé tous ces abonnés (export d'une liste puis import dans la générale) pour les informer de manière générale (exemple : dates de ses vacances).
Dans l'ordre : on crée une liste, on importe ou ajoute des abonnés, et une campagne commence en créant un mail dans la liste sélectionnée.
Mais avant on fait un test : clic sur la liste de test, rédaction, preview et envoi. Si le mail est bien reçu, bien relu et propre, tu vas dans archives, tu affiches le mail à envoyer à la liste principale et tu vas en dessous du mail, et il y a écrit utiliser ce mail avec la liste (tu la choisis, principale par exemple) et tu fais OK. Automatiquement, le mail sera affiché dans la tâche de rédaction d'un nouveau mail dans la liste principale, prêt à être corrigé et envoyé en preview. L'envoi ne commence qu'après la preview.
Voilà, ai je été clair ?
Bonjour Jeangau,
Et bienvenue sur le forum !
Je comprends les tâtonnements, c'est légitime.
Le fond de couleur arrivera peut être, ce n'est pas une priorité, mais ça arrivera ! Juste un peu de patience...
Please, move fields categorie, short_desc, long_desc to NULL in your DB admin (table $prefix"_email").
Bonjour,
Je n'ai pas été disponible un long moment, je m'en excuse.
Il me faudrait en savoir un peu plus.
En effet, dans l'erreur, il est écrit que short_desc doesn't have a default value.
Or, ce champs n'est que du texte, pour gérer les erreurs de distribution.
Je voudrais donc savoir :
- version de php
- version de mysql
- version de phpmynewsletter
- y avait-il déjà une version installée ?
Bref, des éléments importants à la résolution.
Encore désolé pour le retard, mais maintenant je suis revenu.
Bonne journée,
Arnaud
le port 587 doit être bloqué...
Je devais peut être mettre les 2 en propositions...
En fait, il va l'être justement dans la 2.0.4, avec une liste complète des différents smtp possibles chez les hébergeurs... :
https://github.com/Arnaud69/phpmynewsle … h_smtp.php
Et pour gmail, j'ai bien :
case "smtp_gmail":
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->IsHTML(true);
$mail->Username = $row_config_globale['smtp_login'];
$mail->Password = $row_config_globale['smtp_pass'];
break;Je suis inquiet quand je lis ça, je dois repointer les connexions diverses et variées... J'avoue ne plus comprendre...
Oui, tu remplaces les tr par translate
La fonction a été raccourcie en nom, parce que beaucoup à écrire... 
Bon, je viens de passer un bon moment sur ton cas :
- mes tests avec mon compte gmail me permettent de m'inscrire sur une liste
- les fonctions 2.0.3 et 2.0.4 sont identiques
- le formulaire d'inscription semble également être identique (des nouvelles fonctionnalités génèrent des différences de comparaison de fichiers)
Ce que je te propose, ce serait de remplacer ton subscription.php de la 2.0.3 par celui de la 2.0.4 :
https://raw.githubusercontent.com/Arnau … iption.php (clic droit enregistrer sous)
Et la seule autre chose qui serait à modifier : la fonction sendEmail dans le fichier include/lib/pmn_fonctions.php :
function sendEmail($send_method, $to, $from, $from_name, $subject, $body, $auth = 0, $smtp_host = '', $smtp_login = '', $smtp_pass = '', $charset = 'UTF-8') {
$mail = new phpmailer();
$mail->CharSet = $charset;
$mail->PluginDir = "include/lib/";
switch ($send_method) {
case "smtp":
$mail->IsSMTP();
$mail->Host = $smtp_host;
if ($auth) {
$mail->SMTPAuth = true;
$mail->Username = $smtp_login;
$mail->Password = $smtp_pass;
}
break;
case "smtp_gmail":
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = $smtp_login;
$mail->Password = $smtp_pass;
break;
case "php_mail":
$mail->IsMail();
break;
case "smtp_mutu_ovh":
$mail->IsSMTP();
$mail->Port = 587;
$mail->Host = 'ssl0.ovh.net';
if ($auth) {
$mail->SMTPAuth = true;
$mail->Username = $smtp_login;
$mail->Password = $smtp_pass;
}
break;
case "smtp_mutu_1and1":
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Port = 465;
$mail->Host = 'auth.smtp.1and1.fr';
if ($auth) {
$mail->SMTPAuth = true;
$mail->Username = $smtp_login;
$mail->Password = $smtp_pass;
}
break;
case "smtp_mutu_gandi":
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->Host = 'mail.gandi.net';
if ($auth) {
$mail->SMTPAuth = true;
$mail->Username = $smtp_login;
$mail->Password = $smtp_pass;
}
break;
case "smtp_mutu_online":
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Port = 587;
$mail->Host = 'smtpauth.online.net';
if ($auth) {
$mail->SMTPAuth = true;
$mail->Username = $smtp_login;
$mail->Password = $smtp_pass;
}
break;
case "smtp_mutu_infomaniak":
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Port = 587;
$mail->Host = 'mail.infomaniak.ch';
if ($auth) {
$mail->SMTPAuth = true;
$mail->Username = $smtp_login;
$mail->Password = $smtp_pass;
}
break;
default:
die(tr("NO_SEND_DEFINITION"));
break;
}
$mail->IsHTML(true);
$mail->From = $from;
$mail->FromName = $from_name;
$mail->AddAddress($to);
$mail->Subject = $subject;
$mail->Body = $body;
if (!$mail->Send()) {
echo $mail->ErrorInfo;
return -2;
}
return true;
}Il n'y a aucune raison que cela ne fonctionne pas, c'est quand même une erreur bien étrange...
Bizaaaaaaaare....
Je crois que tu as une 2.0.3.
Il faut regarder que tu as bien :
Dans subscription.php (à la racine), le pavé :
$mail = sendEmail($row_config_globale['sending_method'], $email_addr, $news['from_addr'], $news['from_name'], $subj, $body, $row_config_globale['smtp_auth'], $row_config_globale['smtp_host'], $row_config_globale['smtp_login'], $row_config_globale['smtp_pass'], $row_config_globale['charset']);dans lib/pmn_fonctions.php, que tu aies bien à la fonction sendEmail, le pavé :
case "smtp_gmail":
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = $smtp_login;
$mail->Password = $smtp_pass;
break;Est-ce que ce sont toutes les souscriptions qui passent en erreur ? Cela a t-il été une fois ?
Ha mince, je comptais revenir sur cette fonction avec mon mutu ovh, une fois ma liste nettoyée des mails en erreur grâce au SMTP de gmail
En fait, sur une liste TRES clean, nettoyée, liste opt-in sûre, alors oui on peut l'utiliser, en réduisant le nombre d'envois par boucle, ... mais ça reste du php_mail, il faut en être conscient, avec les limites que cela comporte.
Mauvaise idée...
Après, chacun fait comme il l entend !
Bonjour,
Oui c'est bien celle là. Elle ne donne aucune visibilité dans les traces smtp, ce n'est pas un bon outil et ça peut vite dégénérer... Vous pouvez me croire...
Elle est inscrite dans pmnl2 car c'est en général disponible sur les serveurs via description dans php.ini.
Pmnl2 n'a rien inventé.
De rien.
Et ne pas oublier qu'une campagne mail n'est pas un jeu, mais bien un outil de communication, de marketing et d'enjeu de l'image que l'on veut porter...
Bon courage et tiens nous au courant, ce sera un grand plaisir 
Arnaud
Le problème vient de la méthode d'expédition
Avec la méthode smtp, ca fonctionne mais je suis limité à 500 envois par heure.
Quand j'utilise la fonction mail PHP, il me dit que le message a bien été envoyé mais nous recevons rien.
Oui 500 envois / heure.
Et je déconseille très fortement (mais alors très fortement!!!!) l'usage de php_mail !!! On devrait même le bannir !
En fait, en mutualisé OVH, il y a un souci avec la cadence de délivrance.
C'est un vieux sujet. Il serait judicieux, dans ton cas, et sous réserve de petit, modeste financement, prévoir un smtp... (un vps à quelques euros mensuels est suffisant).
La réputation senderscore, c'est savoir si oui ou non l'ip est utilisée en spam. Mais apparemment ce n'est pas le cas.
C'est donc juste que tu es tombé dans un goulet d'étranglement sur une forte utilisation du SMTP mutualisé ovh... Et tes mails sont passés à la trappe...
C'est bordel j'en conviens.
Et c'est normal que les logs pmnl soient justes car le mail a été normalement remis au smtp. Pmnl a fait son boulot je dirais.
Bonjour Samuel,
Il faudrait peut être un peu plus de détails...
Combien d'abonnés ?
Hébergement en mutualisé ? Dédié ? Usage d'un smtp autre (mailjet,...) ?
Y a t-il une réputation en cours ? (faire un test sur https://www.senderscore.org/)
Sinon, les logs : du serveur ou de PmnL ?
Merci d'être précis dans les réponses, tout est important !
Et bienvenue sur le forum
Arnaud
En fait, ce ne sera pas une temporisation qui devra être mise en place, mais la constitution d'un tableau des mails présents et leurs headers pour parsing ultérieur.
Cette mise en tableau permettra de vérifier les mails retournés de manière plus précise... Normalement.
Pas évident ce bug... 
Elle n'est pas encore écrite, il faut analyser la boucle, je donnerai la modification dés qu'elle sera prête.
Laisse moi juste un peu de temps, j'ai plusieurs autres projets à mener de front... Je temporise le tout au mieux ;-)
Voilà ! Une installation simplement réalisée.
Merci
Re-
Et je reprends un fil que tu avais déjà ouvert :
https://www.phpmynewsletter.com/forum/v … 1422#p1422
Tu es en hébergement mutualisé il me semble ?
Je crois vraiment à une lenteur mysql à dérouler une requête alors que la suivante se présente. Celle qui se présente attend trop longtemps pour être déroulée (time ou) et est donc exclue du process des requêtes à exécuter...
Ceci étant dit, je pense qu'une petite temporisation entre chaque requête de traitement d'un bounce serait opportune. Je vais la mettre en place sur 2.0.4
Bonjour,
d'abord merci Arnaud de m'avoir indiqué le bon chemin pour arriver ici
J'ai eu le même problème en voulant faire tourner PMN "en interne" via MAMP mais malgré tous mes essais (mettre le fichier pmn_fonctions que tu nous proposes, refaire une installation, et même recharger le zip) pas moyen d'y arriver, j'avais toujours le même message d'erreur alors que tous les voyants étaient au vert après l'installation. Dès que je voulais aller sur l'index, paf, le drame...
Du coup j'ai fini par me dire que ça devait être un problème de configuration de MAMP alors je me suis jeté dans le grand bain en essayant l'installation sur "mon" site en ligne à proprement parler mais j'ai eu du mal aussi car je me suis retrouvé dans le cas de figure de Tibo ( par ici ). Après plusieurs essais, j'ai fini par réussir l'installation en envoyant le fichier ZIP complet et en le désarchivant directement sur mon site. Si besoin je pourrais être plus clair sur comment j'ai fait.
Encore merci pour l'aide précieuse et sans doute à bientôt vu que je commence tout juste à découvrir ce qui semble être un magnifique outil.
Merci à Arnaud et à tous les participants de ce forum !
De rien, sinon ce ne serait pas un support !
Les installations maison sont assez sympas, oui, mais pour valider une installation, il faut se prendre du temps et calibrer le php.ini à la sauce hébergement réel, et non en hébergement maison. C'est vraiment pas le même monde, entre les fonctions désactivées, les smtp qui diffèrent dans leur mode de transmission, les versions de php, etc...
Ici par exemple, PhpMyNewsLetter est hébergé sur un serveur Nginx, avec un HHVM (la machine virtuelle hip hop de facebook) et derrière du ssl. C'est une installation pointue (je me fais plaisir aussi), mais assez intolérante aux erreurs. Ceci pour essayer de trouver le meilleur équilibre à la rédaction des scripts pour portage sur différentes versions de php (7.0 par exemple).
Sinon, oui, je veux bien que tu expliques ce que tu as fait, c'est un peu de temps certes, mais aussi c'est toujours une belle pierre à l'édifice de la connaissance générale et partagée !
Merci à toi
@rnaud
Je n'arrive pas à reproduire...
Est-ce que :
- les mails traités et intégrés dans pmnl ont bien été déplacés ?
- les mails non traités ont apparemment été déplacés, mais non intégrés dans pmnl comme étant en erreur, c'est bien ça ?