Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
j'inaugure mon inscription sur ce site par un petit problème avec l'envoi de mail par smtp.
la config de mon php.ini :
SMTP = smtp.free.fr
smtp_port = 25
Je réussi à envoyer un mail avec un code "standard" (venant de la FAQ de developpez.com) que voici :
$destinataire = 'machinchose@gmail.com'; $expediteur = 'trucbidule@free.fr'; $objet = 'Test'; $headers = 'MIME-Version: 1.0' . "\n"; $headers .= 'Reply-To: '.$expediteur."\n"; $headers .= 'From: "Nom_de_expediteur"<'.$expediteur.'>'."\n"; $headers .= 'Delivered-to: '.$destinataire."\n"; $message = 'Un Bonjour de Developpez.com!'; if (mail($destinataire, $objet, $message, $headers)) { echo 'Votre message a bien été envoyé '; } else // Non envoyé { echo "Votre message n'a pas pu être envoyé"; }
Avec ce code tout fonctionne bien, et je reçois bien mon mail.
En revanche, avec un code utilisant les classes du Zend Framework, je ne reçois pas de message. Et pourtant aucune exception n'est levée (ou du moins rien n'est affiché nulle part, j'ai mis un die(); juste après l'appel à $email->send(); ).
Le code que j'utilise :
$tr = new Zend_Mail_Transport_Smtp('smtp.free.fr'); Zend_Mail::setDefaultTransport($tr); $mail = new Zend_Mail(); $mail->setBodyText('This is the text of the mail.'); $mail->setFrom('truc@free.fr', 'Some Sender'); $mail->addTo('bidule@gmail.com', 'Some Recipient'); $mail->setSubject('TestSubject'); $mail->send();
Y a t-il un problème connu avec cette version du framework ou bien autre chose à coté de quoi je passe ?
Toute idée est la bienvenue.
Merci d'avance.
Hors ligne
Essaye comme ça :
$mail = new Zend_Mail(); $tr = new Zend_Mail_Transport_Smtp('smtp.free.fr'); $mail->setDefaultTransport($tr); $mail->setFrom('truc@free.fr', 'Some Sender'); $mail->addTo('bidule@gmail.com', 'Some Recipient'); $mail->setSubject('TestSubject'); $mail->setBodyText('TestContenu'); $mail->send();
dans ton code Zend_Mail::setDefaultTransport($tr); n'est pas dans ton "objet" mail.
Dernière modification par ubini (14-03-2008 01:38:25)
Hors ligne
J'ai testé et ça ne fonctionne pas mieux.
Toujours pas de messages d'erreurs, tout se passe bien mais je ne reçois pas de mail.
Est-ce que quelqu'un ici parvient à envoyer un mail en smtp avec les classes du framework ?
Si oui je serais bien intéressé par les détails de sa configuration, que ça soit de php ou du framework.
Merci pour votre aide.
Hors ligne
As tu regardé la configuration de ta freebox car il me semble qu'il y a un paramètre qui bloque les envois par SMTP ....
Hors ligne
En effet il y a un paramètre dans la configuration de le Freebox qui permet ou pas de bloquer l'envoi de mail en SMTP par un serveur local.
Mais après l'avoir désactivé, pas de changement. Ca ne m'étonne qu'à moitié puisque je réussissais déjà à envoyer des messages en utilisant la fonction mail(). Je n'utilise pas de serveur smtp. Je ne sais pas comment fonctionne le framework à ce niveau mais j'imagine qu'il simule un client mail pour envoyer ses courriers.
En tous cas merci pour l'idée.
Personne n'utilise le framework pour envoyer ses mails en smtp de chez lui ? (ou pas de chez lui d'ailleurs)
Hors ligne
Je ferai un test la semaine prochaine (j'ai aussi une freebox)
Hors ligne
Voilà, j'ai fait 2 tests
public function testAction() { Zend_Loader::loadClass('Zend_Mail'); Zend_Loader::loadClass('Zend_Mail_Transport_Smtp'); $mail = new Zend_Mail(); $tr = new Zend_Mail_Transport_Smtp('smtp.free.fr'); $mail->setDefaultTransport($tr); $mail->setFrom('truc@free.fr'); $mail->addTo('machin@free.fr'); $mail->setSubject('TestSubject'); $mail->setBodyText('TestContenu'); $mail->send(); }
Ça fonctionne très bien.
J'ai fait ce test aussi :
public function testAction() { Zend_Loader::loadClass('Zend_Mail'); Zend_Loader::loadClass('Zend_Mail_Transport_Smtp'); $mail = new Zend_Mail(); $tr = new Zend_Mail_Transport_Smtp('smtp.free.fr'); $mail->setFrom('truc@free.fr'); $mail->addTo('machin@free.fr'); $mail->setSubject('TestSubject'); $mail->setBodyText('TestContenu'); $mail->send($tr); }
Là encore, ça fonctionne.
J'utilise ZF version 1.0.3
Olivier (courage ! )
Hors ligne
Merci pour le temps que tu passes.
Je viens de tester par pur hasard la méthode setBodyHtml() et avec cette dernière ça fonctionne. Alors qu'avec setBodyText() non. Je ne vois pas vraiment pourquoi.
Dans la mesure où ça marche je ne vais pas chercher plus loin pour l'instant. Mais si quelqu'un a une idée sur ce point, je suis interessé.
Je mettrai mon nez dans le code du framework un de ces 4, mais pas tout de suite.
Merci
Hors ligne
J'ai exactement le même souci !!
J'ai remarqué que les mails ne passe pas tant que l'on utilise l'encodage par défaut "quoted-printable" alors que ça passe très bien avec d'autre encodage
$mail->setBodyText($mailContent, 'ISO-8859-1', Zend_Mime::ENCODING_8BIT); // ou $mail->setBodyText($mailContent, 'ISO-8859-1', Zend_Mime::ENCODING_BASE64);
Reste à savoir pourquoi ?
Hors ligne
Alors que si j'envoie un message avec Thunderbird et un encodage "quoted-printable" (7bit par défaut) ça passe très bien , étrange... Bug ?
Hors ligne
Pages: 1