Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-07-2011 14:55:56

honey0
Nouveau membre
Date d'inscription: 26-07-2011
Messages: 7

envoi mail via un batch

Bonjour,
Je sais qu'il y a déjà beaucoup de sujets sur l'envoi de mails, mais ceux que j'ai vus ne m'aident pas dans la résolution de mon problème
je viens de commencer zend, et j'essaie d 'envoyer un mail avec zend_mail.
Le code marche lorsque l'envoi se fait dans le contrôleur. Mais je voudrai faire un batch qui s'en occupera, et là je prends le même code, et j'ai l'erreur suivante:
" zend_mail_protocol_exception: aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusée"
Je précise que je suis en local, et que cela marche dans le contrôleur. ça fait pareil avec un serveur, donc la problèmee ne vient pas de là, d'autant plus que le mail est envoyé quand c'est dans le contrôleur.

voilà mes codes:

la classe EnvoiMails.php

Code:

 
class Business_EnvoiMails 
    {
            public function __construct()
            {
                
            }

            /**
             * fonction qui envoi les notifications de la journée par mail
             */
            public function mailer()
            {
                $fonction = new Business_NPD();

                $result = $fonction->getMailsNotificationsJour();

                    //******* Début envoi de mails
                //définition du serveur SMTP qui sera utilisé
                $mailTransport = new Zend_Mail_Transport_Smtp(*****************);
                Zend_Mail::setDefaultTransport($mailTransport);

                $mail = new Zend_Mail();
                $mail->setType(Zend_Mime::MULTIPART_RELATED);
                $mail->setFrom('', '');

                foreach ($result as $r)
                {
                    error_log(1);
                    $message = "Mon message **************";

                    $mail->setBodyHtml(iconv("UTF-8", "ISO-8859-1//TRANSLIT", $message));
                    $mail->addTo($r['adresse'], '');
                    $mail->send();
                    //error_log($mail);

               }

            }
}

et mail.bat

Code:

 
set APPLICATION_ENV=ptdevelopment
set APPLICATION_MODULE=batch
set TRACES=c:\temp
set p0="%~dp0..\contexts\batch.php"
set p1="00"
set p2="01"
set p3="Business_EnvoiMails"
set p4="mailer"
set p5="OK"
php %p0% %p1% %p2% %p3% %p4% %p5%

depuis ce matin j'essaie de comprendre ce qui cloche, mais en vain.

Je vous remercie d'avance pour vos interventions.

Dernière modification par honey0 (26-07-2011 15:07:06)

Hors ligne

 

#2 27-07-2011 08:32:49

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: envoi mail via un batch

Tu peux nous montrer aussi ton batch.php ?

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 27-07-2011 09:28:49

honey0
Nouveau membre
Date d'inscription: 26-07-2011
Messages: 7

Re: envoi mail via un batch

Bonjour,
voilà le batch.php

Code:

<?php

require_once dirname(__FILE__) . '/common.php';

// Création instance de la classe à utiliser, en paramètre le numéro de chaine et d'utb
$cls = new $_SERVER['argv'][3]($_SERVER['argv'][1], $_SERVER['argv'][2]);
// Appel de la méthode de classe à utiliser avec les arguments
$argsMethode = split(",", $_SERVER['argv'][5]);
call_user_func_array(array($cls, $_SERVER['argv'][4]), $argsMethode);

Hors ligne

 

#4 28-07-2011 10:20:44

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: envoi mail via un batch

J'avais pas vu dans le premier message, mais ton champs from vide, c'est bizarre.

Je ne suis pas étonné que des serveurs de mails refusent ça.

Sinon ce qui change entre la versions web et ta version en ligne de commande c'est :
- tu n'as plus accès à tes confs apache => peut-être que tu as défini l'environnement dans ta conf apache ou dans un .htaccess qui fait que ton environnement n'est pas le même.
- ensuite si tu configures Zend_Mail dans application.ini ou dans le bootstrap est-ce qu'ils sont lancés par ton "lanceur" de ligne de commande (peut être dans ton common.php ?).
- quand tu es en ligne de commande, tu t'appuie directement sur les confs du php.ini => si ton Zend_Mail n'est pas bien initialisé, il peut prendre des valeurs définies dans php.ini

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#5 28-07-2011 11:20:45

honey0
Nouveau membre
Date d'inscription: 26-07-2011
Messages: 7

Re: envoi mail via un batch

bonjour,

j'ai rempli le champ from, et c'est toujours pareil.

Pour faire l'envoi, je me suis appuyée sur
http://framework.zend.com/manual/fr/zen … mails.html, et ils ne parlent de pas de configurations spéciales à faire. J'ai essayé les différentes méthodes qu'ils ont proposées (envoi simple de courrier SMTP, envoi de plusieurs courriers SMTP, contrôle manuel de la connexion), mais en vain.
De plus, si ça avait été un problème de configuration, n'aurait-il pas râler lorsque j'ai fait l'envoi via le contrôleur (sans passer par un batch)? ça me parait bizarre qu'il envoie les mails depuis le contrôleur, et sorte des erreurs quand je me sers d'un batch.

Sinon, comment configurer zend_mail dans l'un des fichiers que tu as cités?

Hors ligne

 

#6 03-08-2011 09:51:03

honey0
Nouveau membre
Date d'inscription: 26-07-2011
Messages: 7

Re: envoi mail via un batch

Bonjour.

j'ai finalment utilisé un webservice pour envoyer les mails.
Merci à ceux qui ont apporté leur contribution

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages