• 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 - Multiple Email - doppelte Versand

flod

New member
Hallo,

Zum Ablauf:

ich nutze für den Emailvesand Zend Mail und SMTP Server.
Versendet Emails werden in meinen IMAP Account gespeichert.

Einzellversand von Emails als auch als Cronjob funktionieren einwandfrei.

Seit ca 2 Wochen habe ich das Problem das beim nächtlichen Cronjob die Emails doppelt versendet werden. Zeitversetzt.

Der Cronjob schick ca 70 Emails an 70 verschiedene Empfänger ink Emailanhang raus.
Das Script läuft auch 70 mal, stellt die Anhänge zusammen und sendet die Emails, Dauert ca 15min

Habe auch schon verschiedene Mailserver ausprobiert, aber bei allen werden die Mails doppelt versendet sobald ich mehrere auf einmal sende.
Wenn ich zb nur 20 Emails auf einmal sende funktioniert es und die Emails werden nur einmal versendet.

Erst ab ca 60 Emails werden alle Emails doppelt versendet.
Wenn ich das Script ohne Emailversand durchlaufen lasse, dann läuft es auch nur exakt einmal durch pro Empfänger.

Hat jemand eine Idee woran es liegen könnte, bzw wo ich noch suchen kann?
 

flod

New member
Hallo ja kann ich verstehen, aus Datenschutzgründen hier ein Ausschnitt des Codes.

Der Cronjob ruf per wget url auf
PHP:
function dayviewAction() {

$this->_helper->layout->disableLayout();
$client = new Zend_Http_Client();

foreach($array => $item){
for($ii=0,$ii<=6,$ii++){
//GET HTML
$html = $client->request()->getBody();

//PDF generiung aus dem HTML
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->writeHTML($html, true, false, false, false, '');
$pdfContent = $pdf->Output("Tagesuebersicht_" . $ii . ".pdf", "S");

//PDF Attachment
$mailAttachment = new Zend_Mime_Part($pdfContent);
$mailAttachments[] = $mailAttachment;

 }

$mail = new My_Mail();
$mail->sendMail($mailAttachments);  
}
Natürlich werden alle Variablen am Anfang und zu beginn einer Schleife initialisiert.

Wie bereits gesagt, das Script funktioniert einwadnfrei solange es nur ein paar Emailempfänger sind.
ab ca 60 werden die Emails doppelt versendet, aber nicht direkt hintereinander sondern zeilich versetzt.

- Der Cron läuft nur einmal.
- Die Schleife mit dem Empäfnger kann ich mitloggen und ausgeben und wird auch nur einmal durchlaufen.
- Wenn ich die Emailversand mitlogge tauchen pro empfänger 2 Logs auf.

Anbei das Email Script->

PHP:
public function sendMail($mailAttachments) {
        $this->sendEmail = false;

        $date = new Zend_Date();

        //Subject
        $this->setSubject($this->view->translate("Daily View") . " ab " . $date->toString("dd.MM.yyyy"));

        $this->setBodyHtml($html, "UTF-8", Zend_Mime::ENCODING_BASE64);
        $this->setBodyText($this->getHTML2Plain($html), "UTF-8", Zend_Mime::ENCODING_BASE64);

        // Anhänge hinzufügen
        if (is_array($mailAttachments)) {
            foreach ($mailAttachments as $mailAttachment) {
                $this->addAttachment($mailAttachment);
            }
        }

            if ($this->send()) {
                -->log Mail werden 2 mal geschrieben
            } 
    }
 
Zuletzt bearbeitet:
Der Code sieht gut aus.

Sind in den doppelten Mails, die Alle Anlagen in beiden Mails enthalten? Oder ist vielleicht die Emailgröße + Anlagen zu groß? So dass er diese aufsplittet in 2 Mails?
 
Oben