• Jeder User im Forum verpflichtet sich zur Akzeptanz und zur Einhaltung dieser Regeln:
    1. Umgangston
      Ein angemessener höflicher Umgangston, ohne Beleidigungen, Beschimpfungen und aggressive Postings ist für jedes Mitglied Pflicht.
    2. Beiträge
      Jedes Mitglied sollte sich bemühen nur sinnvolle Beiträge zum Thema zu posten. Dabei ist unbedingt vorher zu prüfen, ob das Thema vorher schon einmal diskutiert wurde und daher fortgesetzt werden kann
      • Suchfunktion benutzen!
      • offizielle Doku lesen!
    3. Haftung
      Jeder Beitragsersteller übernimmt die alleinige Verantwortung seiner Inhalte.
    4. Werbung
      Wir erlauben keine Beiträge, Signaturen, Private Nachrichten oder eMails an Benutzer, die Werbung enthalten. Ausgenommen
      sind Stellengesuche /-angebote, welche ausschließlich im Forum "Stellengesuche" veröffentlicht werden dürfen.
    5. Verstöße
      Regelwidrige Beiträge sollten dem Team gemeldet werden. Nach deren Überprüfung werden wir schnellstmöglich
      entsprechend handeln.
    6. Authorität
      Den Anweisungen der Team-Mitglieder (Administratoren und Moderatoren) sind in diesem Forum Folge zu leisten.
      Bei Fragen oder Beschwerden bitte an diese wenden.
    Wir möchten Euch darauf aufmerksam machen, dass es bei Verstößen gegen einen oder mehreren der oben genannten
    Punkte dem Team frei steht entsprechend zu handeln. Dies kann z.B. das Löschen eines Beitrags, das Ausschliessen bzw.
    Sperren von Mitgliedern oder aber lediglich eine Verwarnung sein.

    In diesem Zusammenhang sollte erwähnt werden, dass das Forum automatisch die IP-Adresse jedes Beitrag-Erstellers
    speichert. Bei schweren Vergehen, behalten wir es uns vor, die IP-Adresse zur Strafverfolgung weiterzugeben.
  • Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

Zend_Mail funktioniert nicht auf Server

grey1987

New member
Servus,

ich teste momentan die Zend_Mail Komponente.

Ich versuche über einen Mailserver eine eMail zu verschicken. Wenn ich mein Programm lokal laufen lasse funktioniert auch alles prima. Lade ich jedoch das Programm auf einen Linux Server hoch, schlägt der Mailversand fehl.

Die Exception Zend_Mail_Exception wird zwar geworfen, aber es gibt keine message.

Ich hab auf dem Server auf der Kommandozeile per telmap über den Mailserver eine Mail verschickt und das funktioniert auch.

Wo könnte ich noch nachschauen? Welche Parameter sind für den Mailversand in der php.ini wichtig? Welchen Extensions?
 

grey1987

New member
Verschickst du die Mail per SMTP oder per Sendmail?
smtp

ich mach:
PHP:
$transport = new Zend_Mail_Transport_Smtp ('name.des.mailservers'); 
 
$email = new Zend_Mail(); 
$email->setBodyText('Dies ist der Text der ersten E-Mail über Zend_Mail.'); 
$email->setFrom('test@test.de', 'Test'); 
$email->addTo('gregor@jaworski.de', 'Gregor Jaworski'); 
$email->setSubject('Betreff der ersten E-Mail über Zend_Mail'); 
 
$email->send($transport);
 
Zuletzt bearbeitet:

grey1987

New member
Nein, ich denke nicht.

Ich nutze ja den gleichen Code lokal und da funktioniert es ja.

Als die die eMail auf dem über telmap verschickt habe, hab ich auch keine Authentifizierung benötigt.
 

bate

New member
Cool, dann würde der Mailserver ja Relaying erlauben und das ist grob fahrlässig ohne Auth.

Ich würd jetzt mal nen Kasten Bier drauf verwetten das das nicht geht. :)
 

grey1987

New member
Cool, dann würde der Mailserver ja Relaying erlauben und das ist grob fahrlässig ohne Auth.

Ich würd jetzt mal nen Kasten Bier drauf verwetten das das nicht geht. :)
Hmm...

Was meinst du woran das sonst liegt, dass das von meinem lokalen Rechner funktioniert?

Meine einzige Vermutung ist, dass meine Rechner mit meiner IP schon bei der Anmeldung bei Windows über outlook authentifiziert wird. Und so brauch ich bei Zend_Mail nichts mehr anzugeben. Kann das sein?

Wie erklärst du dann aber das versenden der eMail auf dem Server über telmap ohne Authentifizierung?
 

bate

New member
Wenn es ein Exchange Server ist, könnte das gut möglich sein das du aus einem internen Netz kommst und somit relayen darfst.
 

KingCrunch

New member
Eventuell blockiert eine Firewall auch den Ausgang. Der konkrete Fehler wäre schon hilfreich ;) Wie sieht denn die Exception konkret aus? Du kannst auch mal beim Mailserver selbst guckn, ob dort in den Logs abglehnte Verbindungen auftauchen.
 

grey1987

New member
Eventuell blockiert eine Firewall auch den Ausgang. Der konkrete Fehler wäre schon hilfreich ;) Wie sieht denn die Exception konkret aus? Du kannst auch mal beim Mailserver selbst guckn, ob dort in den Logs abglehnte Verbindungen auftauchen.

PHP:
try {
  $mail->send($transport);
} 
catch (Zend_Mail_Exception $e) {
  throw new Exception('Fehler beim versenden der E-Mail; '.$e->getMessage());
}
Ausgabe:
Application error

Exception information:

Nachricht: Fehler beim versenden der E-Mail;
Stack trace:

#0 /srv/www/htdocs/materialbestellung/library/Zend/Controller/Action.php(513): IndexController->sendenAction()#1 /srv/www/htdocs/materialbestellung/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('sendenAction')#2 /srv/www/htdocs/materialbestellung/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))#3 /srv/www/htdocs/materialbestellung/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()#4 /srv/www/htdocs/materialbestellung/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()#5 /srv/www/htdocs/materialbestellung/public/index.php(26): Zend_Application->run()#6 {main}

nach dem "Nachricht: Fehler beim versenden der E-Mail; " sollte ja der Fehler ausgegeben werden, aber wie du siehst steht da gar nix.

Hab leider keinen Zugriff auf den MailServer. Der zuständige Kollege ist momentan auch nicht da.
 

KingCrunch

New member
Dann setz ma resources.frontcontroller.displayExceptions = 1. kA, woher "Fehler beim versendenden E-Mail" kommt, aber mal abgesehen davon, dass es nicht mal gramatikalisch richtig ist, sind Exception-Nachrichten in der Regel englisch.
 

grey1987

New member
Dann setz ma resources.frontcontroller.displayExceptions = 1. kA, woher "Fehler beim versendenden E-Mail" kommt, aber mal abgesehen davon, dass es nicht mal gramatikalisch richtig ist, sind Exception-Nachrichten in der Regel englisch.
Das hab ich geschrieben, (siehe PHP Code).
Das hab ich nur zum testen hingeschrieben, damit ich weiß an welcher Stelle die Exception geworfen wird (Grammatik ist doch richtig?!). Andere Exceptions werden ja ganz normal angezeigt, nur diese hat keine message.
 

KingCrunch

New member
Grammatik ist doch richtig?!
Neija, "Bei dem Versenden". Is nich so tragisch, wär aber bei einer vielfach eingesetzten Software irgendwann aufgefallen, deshalb der Seitenhieb ;)
Andere Exceptions werden ja ganz normal angezeigt, nur diese hat keine message.
Mach ma kein Rethrow (zumal das in der Form eh kein Sinn ergibt), bzw dump die Exception direkt mal. Kann mir nicht vorstellen, dass sich das ZF ausgerechnet hier so schweigsam gibt, auch wenn ich jetzt nen Fehler auf Anhieb auch nicht entdecken kann...

Hab mal nachgeschaut. SMTP sollte sowieso eine Zend_Mail_Transport_Exception werfen (was allerdings von deinem catch-Statement ebenso gefangen wird. Kann man nicht mehr unterscheiden). Es gibt aber nirgendswo in Zend_Mail ein throw-Statement ohne Text. So müsste der Text irgendwo bei deiner Umwandlung auf der Strecke bleiben.
 

gurkenpapst

New member
Also folgendes liefert mir immer wie gewünscht den entsprechenden Fehler der Mailverbindung.
PHP:
$mail = new Zend_Mail();
//...
try {
  $mail->send();
} catch (Zend_Mail_Protocol_Exception $e) {
   // Beispiel
  echo $e->getMessage();
}
 
Oben