PhpMyNewsLetter 2.0

Support et annonces PhpMyNewsLetter.

Vous n'êtes pas identifié(e).

Annonce

Pour me permettre de mieux vous aider au mieux, merci d'être le plus précis possible en donnant :
- la version de phpmynewsletter utilisée
- votre hébergement : personnel, dédié, mutualisé
- votre hébergeur (OVH, free, Infomaniak, 1and1,...)
- votre OS : linux, windows
- version de PHP (5.3, 5.6, 7.0, hhvm...)
Toutes les réponses à mes questions qui sont sans retour de votre part seront considérées comme résolues !

#1 16-10-2015 14:35:06

contremaitre
Membre

Formulaire d'inscription : SMTP connect() failed

Bonjour,
J'ai crée une page pour permettre aux utilisateurs de s'inscrire eux meme.
L'inscription dans la liste se fait bien, par contre j'ai un message d'erreur :

PMN2 a écrit :

SMTP connect() failed.
Abonnement effectué
Vous pouvez fermer cette fenêtre

Pourtant mes mails s'envoient bien quand je passe par l'admin. Alors je comprends pas cette erreur SMTP
Merci

Hors ligne

#2 18-10-2015 09:57:17

Arnaud
Administrateur

Re : Formulaire d'inscription : SMTP connect() failed

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 ?


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#3 18-10-2015 16:20:21

contremaitre
Membre

Re : Formulaire d'inscription : SMTP connect() failed

Oui j'ai bien la 2.0.3
J'ai bien le code que tu as montré dans les deux fichiers.
J'ai mis en place ce formulaire de souscription récemment, j'ai fait 4-5 essais depuis, et j'ai toujours eu cette erreur.

Hors ligne

#4 18-10-2015 18:16:58

Arnaud
Administrateur

Re : Formulaire d'inscription : SMTP connect() failed

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...


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#5 19-10-2015 16:59:40

contremaitre
Membre

Re : Formulaire d'inscription : SMTP connect() failed

<b>Fatal error</b>:  Call to undefined function tr() in <b>subscription.php</b> on line <b>47</b>

Hors ligne

#6 19-10-2015 17:58:16

Arnaud
Administrateur

Re : Formulaire d'inscription : SMTP connect() failed

Oui, tu remplaces les tr par translate
La fonction a été raccourcie en nom, parce que beaucoup à écrire... big_smile


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#7 20-10-2015 09:43:34

contremaitre
Membre

Re : Formulaire d'inscription : SMTP connect() failed

Ca n'a rien changé du coup je me suis lancé dans le débug de susbscription, et pour que ça marche j'ai du changer $mail->SMTPSecure = 'ssl'; et $mail->Port = 465; à la place de tls et 587

Hors ligne

#8 20-10-2015 18:20:19

Arnaud
Administrateur

Re : Formulaire d'inscription : SMTP connect() failed

Je suis inquiet quand je lis ça, je dois repointer les connexions diverses et variées... J'avoue ne plus comprendre...


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#9 20-10-2015 19:10:09

contremaitre
Membre

Re : Formulaire d'inscription : SMTP connect() failed

En fait j'avais fait cette modif au début ou j'étais passé à gmail, dans send et send_preview, mais j'avais oublié entre temps que j'avais du faire ca, avec tous les autres problèmes que j'avais eu.
La j'ai du le faire également dans pmn_fonction.php
Ce serait bien que ce code commun soit centralisé, pour éviter de faire ce genre de modif à 3 endroits différents.

Hors ligne

#10 20-10-2015 19:42:14

Arnaud
Administrateur

Re : Formulaire d'inscription : SMTP connect() failed

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 prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#11 20-10-2015 21:20:15

contremaitre
Membre

Re : Formulaire d'inscription : SMTP connect() failed

Oui, mais moi ca ne marche pas en tls. Merci pour tes réponses en tout cas.

Hors ligne

#12 21-10-2015 06:47:39

Arnaud
Administrateur

Re : Formulaire d'inscription : SMTP connect() failed

le port 587 doit être bloqué...
Je devais peut être mettre les 2 en propositions...


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

Pied de page des forums

Propulsé par FluxBB