Emailversand funktioniert nicht

Klassen zur Datenverarbeitung in den Controllern (DRY)

Emailversand funktioniert nicht

Beitragvon getit am So 18. Jan 2009, 12:06

Hallo,

habe versucht über die Email-Component eine Mail zu verschicken.
Hier der entsprechende Code-Ausschitt:
Code: Alles auswählen

$this->Email->delivery = 'debug';  //1
        $this->Email->smtpOptions = array(
            'port'      =>  25,
            'host'      =>  'mailto.t-online.de',
            'username'  =>  'xxxxxx',
            'password'  =>  'xxxxxx'
        );
        $this->Email->to = 'david.sw@t-online.de';
        $this->Email->subject = 'Test';
        $this->Email->replyTo = 'david.sw@t-online.de';
        $this->Email->from = 'david.bruenner@t-online.de';
        $this->Email->template = 'test';
        $this->set('salutation', 'Herr');
        $this->set('name', 'Tester');
        $this->set('msg', 'Wenn der Kuchen spricht, haben die Krümel zu schweigen.');
        if ($this->Email->send()) {
            $this->Session->setFlash('Die E-Mail wurde erfolgreich verschickt!');
        } else {
            $this->Session->setFlash('Es ist ein Fehler aufgetreten!');
        }
 


Ich erhalte immer die Fehlermeldung 'Es ist ein Fehler aufgetreten.

Lediglich wenn ich in der mit dem Kommentar 1 versehenen Zeile 'debug' einstelle, erhalte ich keine Fehlermeldung. Aber die Email kommt trotzdem nicht an.

Ich habe schon alle smtpOptions probiert (smtp, mail, debug).

Auch mit einem lokalen Mailserver hab ich es nicht hinbekommen.

Könnte mir bitte jemand bei dem es funktioniert bescreiben wie ich das ganze zum laufen bekomme?
Danke schonmal!


PS: Ich benutze Windows
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista

Re: Emailversand funktioniert nicht

Beitragvon Mathias am So 18. Jan 2009, 13:40

Es wundert mich, dass du so viel festlegst. Hier mal meine Funktion zum Versenden
Code: Alles auswählen
                    $users = $this->User->find('all', array('conditions' => array('id !=' => $this->data['Job']['user_id']), 'recursive' => 0));
                    foreach($users as $user) {
                        $this->Email->to = $user['User']['username'].' <'.$user['User']['email'].'>';
                        $this->Email->subject = 'New Job added to the Schedule';
                        $this->Email->from = 'Libra Unlimited - Backyard Shed <norepley@libraunlimited.com>';
                        $this->Email->template = 'newjob';
                        $this->Email->sendAs = 'both';
                        $this->set('user', $user);
                        $this->set('job', $this->Job->read(null, $this->Job->getID()));
                        $this->Email->send();
                    }

Wenn der Maildienst richtig eingestellt wurde, musst du solche Sachen wie smtpOptions nicht mehr definieren. Es kann sein, dass ich mich irre, aber ich hab bei mir im Projekt gesucht und keine solcher Einstellungen gefunden. Gut, ich benutz ja auch nicht smtp.

Vielleicht hilft dir das weiter: http://bakery.cakephp.org/articles/view/brief-overview-of-the-new-emailcomponent
cheers
Benutzeravatar
Mathias
 
Beiträge: 184
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.2.5
OS: OS X 10.6.x

Re: Emailversand funktioniert nicht

Beitragvon getit am So 18. Jan 2009, 13:47

@Mathias
Danke für Deine schnelle Antwort.

:D Jetzt funzt es :D

haben sich ein paar komische Sonderzeichen beim bearbeiten der php.ini eingeschlichen.
Jetzt funzt es!

php.ini
Code: Alles auswählen
SMTP = mailto.t-online.de
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista

Re: Emailversand funktioniert nicht

Beitragvon getit am Sa 25. Jul 2009, 20:13

Schon wieder ein Problem :(

Meine Anwendung läuft jetzt auf einem neuen Server.
Auf dem alten Server hat das versenden der emails mit folgendem Code gut funktioniert
Code: Alles auswählen

$this->Email->to = $this->data['User']['email'];
$this->Email->smtpOptions = array(
    'port'  =>  25,
    'host'  =>  'smtp.net-projekt.net'
);
$this->Email->delivery = 'smtp';
$this->Email->subject = 'Erinnerungsmail';
               
$this->Email->from = 'info@aphasiemanagement.net';
$this->Email->sendAs = 'html';
$this->Email->template = 'password';
       
if ($this->Email->send()) {
        $this->Session->setFlash('Die E-Mail wurde erfolgreich verschickt!');
} else {
        $this->Session->setFlash('Es ist ein Fehler aufgetreten!');
}
 


Auf dem neuen Server (nur die Anwendung ist umgezogen - der SMTP ist der gleiche) bekomme ich nur die Fehlermeldung: Es ist ein Fehler aufgetreten.

Hat jemand eine Idee wieso es auf dem einen Server wunderbar funktioniert und auf dem anderen Server nicht?
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista

Re: Emailversand funktioniert nicht

Beitragvon havanna am Mo 27. Jul 2009, 10:35

Hallo,

eine Möglichkeit: Kennt der neue Server den SMTP-Server (Stichwort DNS)? Könnte man z.B. mit einem Ping testen. Ansonsten mal mit der IP-Adresse testen.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 174
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Emailversand funktioniert nicht

Beitragvon getit am Mo 27. Jul 2009, 15:19

@havanna

Danke für Deine Antwort.
Es gab keine Problem mit dem DNS (mit der IP hats auch nicht funktioniert).

Ich habe jetzte (die mir bisher unbekannte Variable) smtpError verwendet.
Code: Alles auswählen

if ($this->Email->send()) {
   ...
} else {
   echo $this->Email->smtpError;
}
 

Da kam dann eine Meldung das mein FROM fehlerhaft ist (obwohls auf dem alten Server wunderbar funktioniert hat !).
Dann nach Änderung kam die Meldung das des FROM mit der fqdn übereinstimmen muss.

Jedenfalls hab ich die Zeile $this->Email->from jetzt so
Code: Alles auswählen

$this->Email->from ='Service@<<HIER die TopLevelDomain>';
 
getit
 
Beiträge: 105
Registriert: Mo 22. Dez 2008, 13:06
CakePHP-Version: 1.2.1.8004
OS: Vista


Zurück zu Components

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron