2009-10-27 9 views
8

Je suis en train de développer une application de framework zend qui inclut une fonction email simple. La version de développement est en cours d'exécution sur mon ordinateur, qui exécute Ubuntu. La version de production va fonctionner sur un serveur de production.Comment envoyer un email en utilisant Zend_Mail, sendmail et localhost?

Lorsque j'essaie de m'envoyer un e-mail de test, j'obtiens une exception avec le message: "Impossible d'envoyer le message". Je ne sais pas s'il s'agit d'un problème d'environnement ou d'un problème de code. Je n'utilise pas de transport, donc je pense qu'il est Zend_Mail_Transport_Sendmail par défaut. Voici mon code:

public function sendtestAction() 
{ 
    $mail = new Zend_Mail(); 
    $mail->setFrom('[email protected]', 'Test Email'); 
    $mail->addTo('[email protected]', 'My Name'); 
    $mail->setSubject('This is just a test.'); 
    $mail->setBodyText('This is only a test.'); 
    $mail->send(); 
} 

Mise à jour: J'ai essayé une approche différente en définissant le transport SMTP à utiliser localhost:

transport = new Zend_Mail_Transport_Smtp('localhost'); 
Zend_Mail::setDefaultTransport($transport); 

Je suis une autre erreur cette fois-ci: « Connexion refusée » Je ne sais pas ce que cela signifie Peut-être que je n'ai pas encore défini quelque chose?

Mise à jour: Je suppose que je n'ai pas installé de serveur SMTP. This tutorial made it really easy for me to get an SMTP server up an running. Maintenant, les deux exemples de code ci-dessus fonctionnent.

+0

Vos journaux SMTP affichent-ils quelque chose? –

+0

Où puis-je trouver ceux-ci? – Andrew

+0

Sur Ubuntu, vérifiez/var/logs/ –

Répondre

2

Il semble que vous ayez besoin de configurer un MTA, ou en trouver un que vous pouvez envoyer. Le bureau Ubuntu devrait en créer un par défaut, probablement exim ou postfix, mais si vous ne l'avez pas configuré, il ne fonctionnera probablement pas.

2

Vous ne voulez pas définir le transport par défaut si vous souhaitez utiliser sendmail (il s'agit de la valeur par défaut) et SMTP est différent. Qu'il n'envoie pas les emails suggère que sendmail ou le MTA sur votre serveur n'est pas installé/n'est pas configuré correctement.

Questions connexes