Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Autres composants
Autres composants Forum de support sur les autres composants de Zend Framework.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2007, 14h52   #1
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Par défaut Zend_Mail : problème avec fonction addTo

J'utilise la classe Zend_Mail pour envoyer des mail
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
if( $this->_request->getParam('id') )
		{
			// extraction du mail entreprise
    		$ent_id = $this->_request->getParam('id');
    		$entreprises = new Entreprise();
			$ent = $entreprises->find($ent_id)->current()->ent_email;
		}
 
 
		if( $this->_request->isPost() )
		{
 
			//création d'un filtre
			Zend_Loader::loadClass('Zend_Filter_StripTags');
			$filter = new Zend_Filter_StripTags();
 
			//récuperation des champs du formulaire
			$nom = trim($filter->filter($this->_request->getPost('nom')));
			$prenom = trim($filter->filter($this->_request->getPost('prenom')));
			$email = trim($filter->filter($this->_request->getPost('mail')));
			$message = trim($filter->filter($this->_request->getPost('message')));
 
 
			$identite = $nom." ".$prenom;
 
			//création du mail
			$mail = new Zend_Mail();
 
			//sujet du mail
			$mail->setSubject('Reponse offre - stoodies');
 
			//corps du message
			$mail->setBodyText($message);
 
			//expediteur
			$mail->setFrom($email, $identite);
 
			//destinataire
			$mail->addTo($ent);
			//$mail->addTo('une_adresse_qui_existe@xxx.com');
 
			//envoi du mail
			$mail->send();
		}
Le problème vient que pour la fonction addTo quand je met directement un adresse cela marche, mais lorsque je met la variable $ent (qui est l'email récupéré dans la bdd) cela ne marche pas, j'ai internal serveur error.

Je ne comprends pas
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 16h11   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Est-ce que les logs disent quelque chose ?
As-tu vérifié que c'est bien une adresse e-mail que tu récupères de la BDD ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 16h13   #3
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Oui c'est bien une adresse mail (enfin une chaine mais qui est vérifié a l'enregistrement dans la base) que je recuprère, de plus quand je fais un echo de $ent c'est bien l'adresse que je souhaite (la meme que celle que j'ai mis en dur directement)
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 16h21   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
J'essaie juste de te donner des pistes, car je n'ai ni tes scripts ni ta BDD. Il ya forcément un truc quelque part, car il n'y a pas de différence entre une chaîne et une variable qui contient cette chaîne. As-tu comparé la variable et la chaîne, par exemple ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 16h32   #5
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
oui je viens de faire le test de comparaison, et apparament c'est bien les memes...
voici le test
Code :
1
2
3
4
 
if ('mon_adress@mon_domaine.fr' == $ent)
			{ $this->view->test = "ok"; }
			else {$this->view->test = "faux"; }
et dans la vue, la variable $this->test est égale a ok
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 17h31   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Essaie avec $mail->addTo(strval($ent)); pour voir ?
Je ne vois vraiment pas ce qui peut poser problème, es-tu certain de ne rien changer d'autre lorsque tu mets directement l'adresse à la place de la variable ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 17h37   #7
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Non strval ne change rien, et il n'y a aucune interférence avec $ent
Je ne comprends plus rien
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 17h58   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Si tu fais un point d'arrêt juste avant send(), ça donne quoi ? As-tu essayé d'inspecter le contenu de $mail avant et après l'appel à addTo() ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 08h14   #9
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Rajoute un 3ème "égal" a ta comparaison... A priori, ça devrait faire la même chose que le "stringval", mais ça coute rien d'essayer.
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 09h32   #10
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Un 3eme egal ne change rien, merci de ta participation..
J'ai fais un var_dump($ent) et ca m'ecrit string(28) "mon.email@domain.fr"
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 10h47   #11
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Je viens de remarqué un truc en bidoullant le code, lorsque que je referme
Code :
1
2
 
if ($this->_request->isPost() )
juste avant de créer mon mail, l'adresse récupéré en base marche, mais bon le mail s'envoi directement lors du chargement de la page et sans les données rentrées dans le formulaire...

Si ca peut vous aidez
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 11h26   #12
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
C'est toi qui l'a créé, cette fonction? Elle n'existe pas chez moi (ZF 1.0.0)
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 11h30   #13
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
tu parles de quelle fonction ? car moi aussi je suis sous ZF 1.0
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 11h37   #14
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
$this->_request->isPost()
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 11h41   #15
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Non je l'ai vu dans le tuto suivant: http://g-rossolini.developpez.com/tu...r/?page=modele

c'est pour tester si le formulaire a été soumi, de plus ca marche bien pour mes autres fonctionnalités, comme une recherche

Cette fonction est defini dans Controller/Request/Http.php
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 12h01   #16
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Je ne comprends pas, chez moi elle n'est pas définie dans Zend_Controller_Request...
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 14h42   #17
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Sinon as tu une autre idée de comment faire ?
Une vue est appeller comme ceci http://monsite/controller/action?id=5, j'ai un formulaire (avec 4 champs: nom, prenom, email, message) et lorsque je clique sur le bouton envoyé, je veux qu'a partir de l'id je récupère dans la base l'adresse mail du destinataire, et que je créé le mail avec les info du formulaire

Moi la fonction isPost() est defini dans Zend/Controller/Request/Http.php ligne 705
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 15h00   #18
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Ok moi je suis encore en Zend_Controller_Request_Abstract, c'est pour ça (je vois pas pourquoi par contre )
Pout ton histoire de mail, honnêtement je ne vois pas trop... En fait je n'ai pas très bien compris ce que tu entendais, dans un de tes messages, par
Citation:
juste avant de créer mon mail, l'adresse récupéré en base marche, mais bon le mail s'envoi directement lors du chargement de la page et sans les données rentrées dans le formulaire...
Tu veux dire qu'on rentre dans le isPost avant la validation des données? Plutot curieux... Essaye avec un classique "isset($_POST['email'])" pour voir...
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 15h09   #19
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 156
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 156
Points : 34
Points : 34
Ca va peut-etre aidé...je met ma vue et mon controlleur (c pas bien long)
vue module.phtml:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<form class="form_rech" action="/repondre/module" method="post" >
	<fieldset>
	<legend> Réponse à l'offre </legend>
	<ol>
		<li>
			<label for="nom"> Nom: </label>
			<input type="text" name="nom" />
		</li>
 
		<li>
			<label for="prenom"> Prénom: </label>
			<input type="text" name="prenom" />
		</li>
 
		<li>
			<label for"mail"> E-mail: </label>
			<input type="text" name="mail" />
		</li>
 
		<li>
			<label for="message"> Message: </label>
			 <textarea name="message" rows="10" cols="50">
  			 </textarea>
		</li>
 
		<li>
			<input type="submit" value="Répondre" />
		</li>
	</ol>
	</fieldset>
</form>
et le controlleur associé:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
function moduleAction()
	{		
		if( $this->_request->getParam('id') )
		{
			// extraction du mail entreprise
    		        $ent_id = $this->_request->getParam('id');
    		        $entreprise = new Entreprise();
			$dest = $entreprise->find($ent_id)->current()->ent_email;
		}
 
		if( $this->_request->isPost() )
		{
 
			//création d'un filtre
			Zend_Loader::loadClass('Zend_Filter_StripTags');
			$filter = new Zend_Filter_StripTags();
 
			//récuperation des champs du formulaire
			$nom = trim($filter->filter($this->_request->getPost('nom')));
			$prenom = trim($filter->filter($this->_request->getPost('prenom')));
			$expediteur = trim($filter->filter($this->_request->getPost('mail')));
			$message = trim($filter->filter($this->_request->getPost('message')));
 
 
			$identite = $nom." ".$prenom;
 
			//création du mail
			$mail = new Zend_Mail();
 
			//sujet du mail
			$mail->setSubject('Reponse offre - stoodies');
 
			//corps du message
			$mail->setBodyText($message);
 
			//expediteur
			$mail->setFrom($expediteur, $identite);
 
			//destinataire
			$mail->addTo($dest, '');
			//$mail->addTo("vrai.adresse@domaine.fr");
 
			//envoi du mail
			$mail->send();
		}
	}
En faite ca m'est égal du moment où je récupère l'email dans la base
leroidje est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h56.


 
 
 
 
Partenaires

Hébergement Web