Ergebnis 1 bis 29 von 29

Thema: [eS_BeMail] Update meiner Erweiterung BE_Mail

  1. #1
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard [eS_BeMail] Update meiner Erweiterung BE_Mail

    Hallo liebe Community,
    nachdem ich in den letzten Tagen zwei neue Erweiterungen veröffentlicht habe, ist es an der Zeit meine erste Erweiterung BE_Mail einem Update zu unterziehen. Über Feedback zum Update würde ich mich wie immer sehr freuen.

    Am grundsätzlichen Zweck der Erweiterung hat sich nichts geändert. Man kann mit ihr bei der Arbeit im Backend kurz Mal eben Nachrichten schreiben. Neu ist, dass man jetzt nicht mehr nur an einen Backend-User schreiben kann. Man kann nun an beliebig viele Backend-User, Frontend-Member und frei einzugebende Mailadressen gleichzeitig mailen.

    Die bereits versendeten Mails werden in einer Liste angezeigt. Damit diese nicht zu groß wird, kann man Nachrichten auch versenden, ohne sie zu speichern. Neu in der Übersicht ist, dass Mails nun kopiert werden können. So können sie an andere Empfänger gesendet werden, ohne die Mail an die ursprünglichen Empfänger zu verlieren. Außerdem ist es möglich, Mails zu bearbeiten und erneut zu senden (hierbei wird die alte Nachricht überschrieben).

    Ihr findet das Update im ER unter: http://www.contao.org/erweiterungsli...050009.de.html

    Viele Grüße,
    eS_IT

  2. #2
    Contao-Nutzer
    Registriert seit
    11.08.2010.
    Beiträge
    113

    Standard Rückmeldung zu BE_Mail

    Erst mal vielen Dank für die tolle Erweiterung BE_Mail. Die neue Version trifft genau meinen Bedarf.

    In der Datei esBeMail.php gibt es jedoch zwei kleine Fehler, weshalb die neue Version bei mir nicht out-of-the-box funktioniert hat.

    Zum einen gibt es eine Leerstelle am Anfang, die zu der folgenden Fehlermeldung führt:
    Cannot modify header information - headers already sent.
    Dies ist leicht zu beheben.


    Die Fehlermeldung Missing argument 3 for esBeMail::sendMail()
    wird hervorgerufen durch ein fehlendes $content in Zeile 68.
    Statt
    PHP-Code:
    $this->sendMail(explode("\n"$this->Input->post('mail')), $subject); 
    müsste es dort heißen
    PHP-Code:
    $this->sendMail(explode("\n"$this->Input->post('mail')), $subject$content); 
    Außerdem habe ich noch zusätzliche if-Abfragen in die Zeilen 66-68 eingebaut. Ich bin mir nicht sicher, ob das erforderlich ist, aber es funktioniert:
    PHP-Code:
            if($this->Input->post('mailBE')) $this->sendMail($this->Input->post('mailBE'), $subject$content);
            if(
    $this->Input->post('mailFE')) $this->sendMail($this->Input->post('mailFE'), $subject$content);
            if(
    $this->Input->post('mail')) $this->sendMail(explode("\n"$this->Input->post('mail')), $subject$content); 
    Nochmals vielen Dank für diese Erweiterung, ich kann sie wirklich gut gebrauchen!
    MfG
    Ulrike

  3. #3
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Hallo Ulrike,
    erstmal vielen Dank für den Hinweis und die detaillierte Fehlerbeschreibung. Du hast vollkommen recht, in Zeile 68 fehlte ein $content. Leider kam bei mir keine Header-Fehlermeldung, aber das Leerzeichen ist schnell beseitigt und gehört da auch wirklich nicht hin.

    Die if-Abfragen sind meiner Ansicht nach nicht nötig, da in der Methode sendMail() eine for-Schleife kommt. Diese wird nur ausgeführt, wenn $adrs min. einen Eintrag hat. In der Schleife kommt noch eine if-Abfrage. Diese prüft, ob es sich bei der Adresse nicht um einen leeren String handelt. Das müsste eigentlich reichen, ich lasse mich aber gerne eines Besseren belehren.

    Die verbesserte Version ist schon online.

    Viele Grüße,
    eS_IT

  4. #4
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

  5. #5
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Frage

    Hallo Marko,
    nett, dass Du Deine Erweiterung fast genauso genannt hast, wie ich meine 2,5 Monate vorher. Ich kann der sparsamen Beschreibung leider nicht entnehmen, was sie alles kann. Offensichtlich versendet sie Anhänge an andere Backend-Nutzer. Das tut eS_BeMail nicht. Weder versendet die Erweiterung nur an Backend-Nutzer, noch versendet sie Anhänge. Auch wenn das eine schöne Idee für das nächste Update ist.

    Auf Grund der Kürze Deines Posts verstehe ich bedauerlicherweise auch nicht, was genau Du sagen willst. Sorry. Vielleicht solltest Du Dein Anliegen etwas weiter ausführen.

    Viele Grüße,
    eS_IT

  6. #6
    Contao-Nutzer
    Registriert seit
    11.08.2010.
    Beiträge
    113

    Standard

    Hallo!
    Zu meinen drei if-Abfragen in der Methode sendAll(), Z. 66-68 (s. oben #2):
    Sie verhindern, dass überhaupt in die Methode sendMail() verzweigt wird, wenn die entsprechenden Inputvariablen nicht gesetzt sind.
    Das optimiert m. E. den Programmablauf ein wenig.
    Vielleicht könnte man sich dann die if-Abfrage innerhalb der sendMail()-Methode sparen. Naja, ist zum Glück keine lebenswichtige Frage.
    MfG
    Ulrike

  7. #7
    Contao-Nutzer
    Registriert seit
    11.08.2010.
    Beiträge
    113

    Standard

    Hab das gerade noch mal getestet, was ich im vorigen Post geschrieben hab. Da die Inputvariablen mailBE und mailFE immer gesetzt sind (bei Nichtauswahl mit einem Leerstring), funktioniert nur die dritte der von mir eingefügten if-Abfragen. Will man verhindern, dass in die Methode sendMail() verzweigt wird, wenn keine Backend- oder Frontend-Adresse gewählt wurde, müsste man das anders realisieren, z. B. so:
    PHP-Code:
    $arrMailBE $this->Input->post('mailBE');
    if(
    $arrMailBE[0]!=''$this->sendMail($this->Input->post('mailBE'), $subject$content);
    $arrMailFE $this->Input->post('mailFE');
    if(
    $arrMailFE[0]!=''$this->sendMail($this->Input->post('mailFE'), $subject$content);
    if(
    $this->Input->post('mail')) $this->sendMail(explode("\n"$this->Input->post('mail')), $subject$content); 
    Ist aber nicht gerade schön, da sieht der Originalcode doch besser aus!
    MfG
    Ulrike

  8. #8
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Hallo Ulrike,
    ich bin nicht sicher, ob der Aufruf der Methode so viel Zeit in Anspruch nimmt, dass man es so lösen sollte. Bei der Art zu testen wird auch nur sicher gestellt, dass die erste Adresse nicht leer ist. Wenn aber bei einem Benutzer keine Adresse hinterlegt ist, kann das nur über eine if-Abfrage in der for-Schleife abgefangen werden.

    Ich werde aber in einer ruhigen Minute noch Mal in Ruhe darüber nachdenken.

    Viele Grüße,
    eS_IT

  9. #9
    Contao-Nutzer
    Registriert seit
    11.08.2010.
    Beiträge
    113

    Standard

    Hallo!

    So wie es jetzt ist, läuft das Programm ja gut. Ich bin auf jeden Fall froh, dass ich heute über diese Erweiterung gestolpert bin, da ich bislang die Möglichkeit vermisst habe, auf einfache Weise an ausgewählte Mitglieder/Benutzer Mail senden zu können (im Gegensatz zur Newsletter-Erweiterung, bei der Mail an festgelegte Gruppen gesendet wird).

    Hab jetzt folgenden Vorschlag:
    An Stelle der Zeilen 66-68:
    PHP-Code:
    $arrMailBE array_filter($this->Input->post('mailBE'));
    if(
    count($arrMailBE)) $this->sendMail($arrMailBE$subject$content);

    $arrMailFE array_filter($this->Input->post('mailFE'));
    if(
    count($arrMailFE)) $this->sendMail($arrMailFE$subject$content);

    $arrMail array_filter(explode("\n"$this->Input->post('mail')));
    if(
    count($arrMail)) $this->sendMail($arrMail$subject$content); 
    Dann die vereinfachte Version der sendMail()-Methode:
    PHP-Code:
    private function sendMail($adrs,$subject,$content){
        foreach(
    $adrs AS $address) {
            
    // Mail versenden
            
    $this->email->subject   $subject;
            
    $this->email->html      $content;
            
    $this->email->sendTo($address);
            
            if(
    $this->Input->post('save')){
                
    // save ist in diesem Fall die Schaltflaeche "Versenden ohne Speichern"
                
    $this->deleteDS($address$subject);
            }
        }

    So werden leere Strings entfernt und die sendMail()-Methode nur aufgerufen, wenn danach noch E-Mail-Adressen in den betreffenden Arrays enthalten sind.

    MfG
    Ulrike
    Geändert von Ulrike (23.05.2011 um 22:46 Uhr)

  10. #10
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Hallo Ulrike,
    zunächst möchte ich einmal anmerken, dass es sehr schön ist, mit jemandem konstruktiv über den Quellcode diskutieren zu können.

    Natürlich hast Du recht, in Contao sind die Mail-Felder Pflichtfelder, aber ich hatte schon öfter Probleme mit Imports, die direkt auf DB-Ebene gemacht wurden. Dann bekommt man nur eine Fehlermeldung, wenn man den Datensatz bearbeitet. So kann es also zu leeren Mailadressen kommen.

    Deine Lösung finde ich sehr elegant. Da es aber drei Mal der gleiche Code ist, würde ich ihn wieder in eine eigene Methode auslagern. So hat man nur eine Stelle, an der man den Code warten muss. Dann hätte man aber wieder einen Methodenaufruf. Vielleicht ist das aber auch eine Glaubensfrage.

    Im Augenblick denke ich über folgende Lösung/Erweiterung nach:
    1.Deinen Code in einer eigenen Prüf-Methode.
    2.In dieser Methode auch gleich eine Validierung auf gültige E-Mailadressen mit regulären Ausdrücken (nur für die freie Eingabe, Steuerung über einen zusätzlichen Parameter).
    So bleiben nur gültige Mailadressen über und mit denen kann dann sendMail() (in Deiner Version) aufgerufen werden.

    Nachteil ist, dass der Benutzer keine Rückmeldung über ungültige Mailadressen bekommt. Eine BE-Valdierung für ein Textarea mit mehreren Adressen habe ich noch nicht hin bekommen.

    Bin gespannt auf Deine Meinung. Aber natürlich ist auch jeder andere gerne eingeladen, sich an der Diskussion zu beteiligen.

    Viele Grüße,
    eS_IT

  11. #11
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Daumen hoch

    Hallo eS_IT
    Du könntest die email-Adressen so auf Gültigkeit prüfen. Die Methode extractEmailAdressesFromString(str) gibt die gültigen Adressen in einem Array zurück und erwartet einen String als einzigen Parameter.
    Liebe Grüsse

    Marko

    Code:
    $this->extractEmailAdressesFromString('m.sdfsd@hoho.ch , info@kletterkader.com ,dsfsf@sdfs@fdas@sdfs.ch hans@la.ch');
    
    public function extractEmailAdressesFromString($strString=NULL)
    {
            $arrEmailAddresses = array();		
            if(!$strString) return $arrEmailAddresses;
            $arrEmails = array();
    	preg_match_all('/\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,6}/i', $strString, $arrEmails);
    	
    	
    	foreach ((array) $arrEmails[0] as $strEmail)
    	{
    		 	$arrEmailAddresses[]=$strEmail;
    	}
    	//var_dump($arrEmailAddresses);
    	return $arrEmailAddresses;
    }
    
    ?>

  12. #12
    Contao-Nutzer
    Registriert seit
    11.08.2010.
    Beiträge
    113

    Standard Nur Anregungen

    Hallo!

    1.
    Ich kann jetzt noch nicht auf alle oben angeführten Ideen eingehen, brauche etwas mehr Zeit. Mir lässt nur der Gedanke keine Ruhe, in den Dropdown-Feldern mailFE und mailBE könnten Namen auftauchen, für die in der Datenbank (aus welchen Gründen auch immer) keine E-Mail-Adresse eingetragen ist. Da man an Leute ohne E-Mail-Adresse de facto keine E-Mail senden kann, würde es doch Sinn machen, solche Mitglieder/Benutzer beim Befüllen der Dropdowns auszusortieren. Das beträfe dann die Methoden

    public function getMailBE()

    und

    public function getMailFE()

    in tl_es_bemail.php innerhalb der Klasse es_bemail_Setup.

    2.
    Für die Eingabe "freier" E-Mail-Adressen schwebt mir statt der Textarea der MultiTextWizard vor. Ist wahrscheinlich weniger anfällig für fehlerhafte Eingaben, führt aber zur Abhängigkeit von einer anderen Erweiterung. Aber das ist m. E. nicht weiter schlimm.

    3.
    Statt die Methode sendMail für drei Arrays (mailBE, mailFE, mail) getrennt aufzurufen, könnte man die Arrays, die ja alle E-Mail-Adressen enthalten, auch in ein Array zusammenfassen...


    So viel für heute.

    MfG
    Ulrike

  13. #13
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Information Überarbeitete Version

    Hallo Zusammen,
    ich habe die Klasse esBeMail noch einmal wie folgt überarbeitet:
    • In die Listen zum Auswählen der Adressen werden jetzt nur noch valide Mailadressen eingefügt.
    • Die Trennung sendAll() und sendMail() gibt es nicht mehr. Ich habe alles in der Methode sendAll() zusammengefasst.
    • In Zeile 61 werden jetzt alle drei POST-Variablen zu einem Array zusammengefasst.
    • Dieses Array wird dann in Zeile 64 gefiltert, damit nur noch valide Adressen übrig bleiben. Anschließend werden noch leere Einträge herausgefiltert.
    • An die verbleibenden Adressen wird gesendet.

    @markocupic:
    Deine Funktion ist schon sehr elegant. Ich habe mich aber gegen reguläre Ausdrücke entschieden, da mir der Aufwand zu hoch erscheint. Mit filter_var_array() gibt es eine PHP-Funktion, die E-Mailadressen validiert. Ich sehe hier keinen Grund, das Rad neu zu erfinden. Außerdem stört mich das Umschichten von einem Array in ein anderes.

    @Ulrike:
    zu 1.: Ja da hast Du wirklich Recht. Da habe ich den Wald vor lauter Bäumen nicht gesehen. Jetzt werden nur noch valide Adressen aufgenommen.

    zu 2.: Den Aufwand eine neue Eingabemethode zu erarbeiten spare ich mir für das nächste Update. Da müsste ich mich erst einarbeiten. Ich denke, jetzt ist es mit der Validierung erstmal ganz gut gelöst.

    zu 3.: Auch aufgenommen; wird jetzt in Zeile 61 gemacht. In Zeile 64 wird dann validiert und die leeren Einträge rausgeschmissen.

    Viele Grüße,
    eS_IT

  14. #14
    Contao-Nutzer
    Registriert seit
    11.08.2010.
    Beiträge
    113

    Standard überarbeitete Datei esBeMail.php

    Nachfolgend eine neue Version der kompletten Datei esBeMail.php, die insgesamt deutlich vereinfacht werden konnte:

    PHP-Code:
    class esBeMail extends Backend {

        
        private 
    $email      null;

        
    /**
         * Description:
         * Die Methode sendAll() sendet eine Mail an alle uebergebenen Adressen.
         *
         * @author      Patrick Froch (e@sy Solutions IT) <patrick.froch@easySolutionsIT.de>
         * @since       21.05.2011
         */
        
    public function sendAll(DataContainer $dc) {
        
            
    $this->import('BackendUser''User');
            
    $this->email        = new Email();

            
    $subject            $this->Input->post('subject');
            
    $content            $this->Input->postRaw('content');
            
    $this->email->from  $this->User->email;
            
    $this->email->replyTo($this->User->email);

        
    //array_merge: in numerischen Arrays überschreibt ein späterer Wert nicht den früheren
        
    $adrs array_mergearray_filter($this->Input->post('mailBE')),
                    
    array_filter($this->Input->post('mailFE')),
                    
    array_filter(explode("\n"$this->Input->post('mail'))) );
        
    // Ergebnis: ein Array, daher prozedural weiter, ehemalige Methode sendMail() ist entbehrlich
        
    if(count($adrs)) {
            foreach(
    $adrs AS $address) {
                
    // to do: E-Mail-Validierung, z. B.
                // $validierungsmuster = ...
                // if(preg_match($validierungsmuster, $address)) { ..
                    // Mail versenden
                    
    $this->email->subject   $subject;
                    
    $this->email->html      $content;
                    
    $this->email->sendTo($address);
                
    // } else ... z.B. Sammeln der Adressen, die nicht validiert werden konnten
            
    }
            
    // ggfs. E-Mail-Mitteilung über die nicht validierten E-Mail-Adressen an $this->user (s.o.)
        
    }

        
    // "Absenden ohne Speichern"
            
    if($this->Input->post('save')) {
                
    // Datensatz entfernen, ehemalige Methode deleteDS() ist entbehrlich
                
    $this->Database->prepare("DELETE FROM `tl_es_bemail` WHERE `id` =?")->execute($dc->id);
                
    // Rückkehr zur Listenansicht
                
    $this->showList();
            }
        }

        
    /**
         * Description:
         * Weiterleitung auf die UEbersicht wenn "Absenden ohne Speichern" gewaehlt wurde.
         *
         * @author      Patrick Froch (e@sy Solutions IT) <patrick.froch@easySolutionsIT.de>
         * @since       21.05.2011
         */
        
    private function showList(){
            if(
    version_compare(VERSION '.' BUILD'2.9.0''<')) {
               
    $path $this->Environment->base 'typolight/main.php?do=tl_es_bemail';
            } else {
               
    $path $this->Environment->base 'contao/main.php?do=tl_es_bemail';
            }

            
    $this->redirect($path301);
        }

    Mein Vorschlag, für das Array mail den MultiTextWizard zum Einsatz zu bringen, ist hier noch nicht berücksichtigt, lässt sich aber ohne große Mühe integrieren.

    MfG
    Ulrike


    [Edit:]

    Oops, da war ich ein paar Minuten zu spät.
    Trotzdem lohnt sich ein Blick auf den obigen Code wg. des Verzichts auf die Methode deleteDS().
    Und noch zwei Kleinigkeiten:
    Schönere Ausgabe des Datums:
    PHP-Code:
        public function setDate(){
            return 
    date($GLOBALS['TL_CONFIG']['dateFormat']);
        } 
    Ersetzen des dt. Worts 'Uhr' durch Sprach-Variable:
    PHP-Code:
        public function setTime(){
            return 
    date('H:i:s') . ' '$GLOBALS['TL_LANG']['tl_es_bemail']['o_clock'];
        } 
    Und ab sofort halte ich mich wieder heraus!
    Geändert von Ulrike (25.05.2011 um 18:47 Uhr)

  15. #15
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Hallo Ulrike,
    das Meiste habe ich ähnlich gelöst wie Du. Ich habe zusätzlich noch die Validierung eingebaut. Die Methode deleteDS() ist auch raus. Dein Weg ist viele besser. Ich habe heute noch das Wort „Uhr“ durch eine Sprach-Variable ersetzt. Die neue Version ist online.

    Da die Liste nach dem Datum sortiert wird, werde ich es jetzt nicht ändern. Ich weiß, es ist nicht schön. Beim nächsten Update wird es geändert. Leider fehlt mit gerade die Zeit einen alternativen Weg zu suchen.

    Viele Grüße,
    eS_IT
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  16. #16
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    812

    Standard

    Hi,

    wäre es möglich auch Antworten an eine bestimmte Mailadresse zu erhalten?

    Vielen Dank Preetz

  17. #17
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Lächelndes Gesicht

    Hallo Preetz,
    ich könnte eine Selectbox einbauen, in der alle Member und User aufgeführt sind. So könnte man die Antwortadresse variabel gestalten. Der aktuelle Benutzer sollte natürlich vorausgewählt sein.

    Ich schreibe mal ein entsprechenden Ticket auf contao-forge.org. Es wird aber wohl etwas dauern und erst in die nächste Version einfließen, da ich gerade einiges um die Ohren habe.

    Viele Grüße,
    eS_IT
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  18. #18
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    812

    Standard

    Hallo eS_IT,

    danke für die schnelle Antwort.
    Ich weiß nicht ob ich das richtig beschrieben habe. Ich suche eine Möglichkeit E-Mail von einem Server per pop3 abzurufen die dort eingegangen sind.

    Preetz

  19. #19
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Gesicht zeigt die Zunge

    Sorry, da habe ich Dich wohl missverstanden. Eine Mailbox-Abfrage ist nicht möglich.
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  20. #20
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    812

    Standard

    Hast du denn ne Idee, wie man das dennoch realisieren kann?

    Preetz

  21. #21
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Hallo Preetz,
    fertig gibt es so etwas glaube ich nicht. Man müsste halt eine Erweiterung schreiben, die per PHP einen POP3-Account ausließt. Im Prinzip würde man also ein Mailprogramm in Contao nachbilden, was nicht gerade trivial ist.

    Viele Grüße,
    eS_IT
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  22. #22
    Contao-Nutzer Avatar von Schmidty
    Registriert seit
    06.06.2011.
    Ort
    Pforzheim
    Beiträge
    203

    Frage Fragen zum TinyMCE in der Erweiterung eS_BeMail

    Hallo eS_IT,

    zuerst einmal Danke für die tolle Erweiterung.

    Ich habe eine Frage bezüglich des TinyMCE, der in eS_BeMail eingebunden ist. Ich habe für diesen Punkt schon einen eigenen Beitrag eröffnet, deshalb hier der Link zu diesem Beitrag:

    https://www.contao-community.de/show...ungen-anpassen

    Danke für Deine Hilfe

    Schmidty

  23. #23
    Contao-Nutzer Avatar von joseph.ki
    Registriert seit
    19.11.2010.
    Ort
    Wels/Österreich
    Beiträge
    128

    Standard Fatal Error bei Contao Vers. 2.11.5

    Hallo, super Erweiterung, nur leider nicht lauffähig unter 2.11.5 - oder ist dies ein Problem wenn die Erweiterung gemeinsam mit eS_ResetPassword eingesetzt wird ?

    Code:
    Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /websoeba/www.webwerkstatt.org/avac/system/modules/es_bemail/esBeMail.php on line 62
    
    #0 [internal function]: __error(2, 'array_merge() [...', '/websoeba/www.w...', 62, Array)
    #1 /websoeba/www.webwerkstatt.org/avac/system/modules/es_bemail/esBeMail.php(62): array_merge(NULL, Array, Array)
    #2 /websoeba/www.webwerkstatt.org/avac/system/drivers/DC_Table.php(1845): esBeMail->sendAll(Object(DC_Table))
    #3 /websoeba/www.webwerkstatt.org/avac/system/modules/backend/Backend.php(287): DC_Table->edit()
    #4 /websoeba/www.webwerkstatt.org/avac/contao/main.php(120): Backend->getBackendModule('tl_es_bemail')
    #5 /websoeba/www.webwerkstatt.org/avac/contao/main.php(230): Main->run()
    #6 {main}
    
    
    Warning: filter_var_array() expects parameter 1 to be array, null given in /websoeba/www.webwerkstatt.org/avac/system/modules/es_bemail/esBeMail.php on line 65
    
    #0 [internal function]: __error(2, 'filter_var_arra...', '/websoeba/www.w...', 65, Array)
    #1 /websoeba/www.webwerkstatt.org/avac/system/modules/es_bemail/esBeMail.php(65): filter_var_array(NULL, 274)
    #2 /websoeba/www.webwerkstatt.org/avac/system/drivers/DC_Table.php(1845): esBeMail->sendAll(Object(DC_Table))
    #3 /websoeba/www.webwerkstatt.org/avac/system/modules/backend/Backend.php(287): DC_Table->edit()
    #4 /websoeba/www.webwerkstatt.org/avac/contao/main.php(120): Backend->getBackendModule('tl_es_bemail')
    #5 /websoeba/www.webwerkstatt.org/avac/contao/main.php(230): Main->run()
    #6 {main}
    
    
    Warning: array_filter() expects parameter 1 to be array, null given in /websoeba/www.webwerkstatt.org/avac/system/modules/es_bemail/esBeMail.php on line 65
    
    #0 [internal function]: __error(2, 'array_filter() ...', '/websoeba/www.w...', 65, Array)
    #1 /websoeba/www.webwerkstatt.org/avac/system/modules/es_bemail/esBeMail.php(65): array_filter(NULL)
    #2 /websoeba/www.webwerkstatt.org/avac/system/drivers/DC_Table.php(1845): esBeMail->sendAll(Object(DC_Table))
    #3 /websoeba/www.webwerkstatt.org/avac/system/modules/backend/Backend.php(287): DC_Table->edit()
    #4 /websoeba/www.webwerkstatt.org/avac/contao/main.php(120): Backend->getBackendModule('tl_es_bemail')
    #5 /websoeba/www.webwerkstatt.org/avac/contao/main.php(230): Main->run()
    #6 {main}
    
    
    Fatal error: Uncaught exception Swift_RfcComplianceException with message Address in mailbox given [] does not comply with RFC 2822, 3.6.2. thrown in /websoeba/www.webwerkstatt.org/avac/plugins/swiftmailer/classes/Swift/Mime/Headers/MailboxHeader.php on line 308
    
    #0 /websoeba/www.webwerkstatt.org/avac/plugins/swiftmailer/classes/Swift/Mime/Headers/MailboxHeader.php(238): Swift_Mime_Headers_MailboxHeader->_assertValidAddress('')
    #1 /websoeba/www.webwerkstatt.org/avac/plugins/swiftmailer/classes/Swift/Mime/Headers/MailboxHeader.php(96): Swift_Mime_Headers_MailboxHeader->normalizeMailboxes(Array)
    #2 /websoeba/www.webwerkstatt.org/avac/plugins/swiftmailer/classes/Swift/Mime/Headers/MailboxHeader.php(60): Swift_Mime_Headers_MailboxHeader->setNameAddresses(Array)
    #3 /websoeba/www.webwerkstatt.org/avac/plugins/swiftmailer/classes/Swift/Mime/SimpleHeaderFactory.php(60): Swift_Mime_Headers_MailboxHeader->setFieldBodyModel(Array)
    #4 /websoeba/www.webwerkstatt.org/avac/plugins/swiftmailer/classes/Swift/Mime/SimpleHeaderSet.php(75): Swift_Mime_SimpleHeaderFactory->createMailboxHeader('To', Array)
    #5 /websoeba/www.webwerkstatt.org/avac/plugins/swiftmailer/classes/Swift/Mime/SimpleMessage.php(306): Swift_Mime_SimpleHeaderSet->addMailboxHeader('To', Array)
    #6 /websoeba/www.webwerkstatt.org/avac/system/libraries/Email.php(409): Swift_Mime_SimpleMessage->setTo(Array)
    #7 /websoeba/www.webwerkstatt.org/avac/system/modules/es_bemail/esBeMail.php(68): Email->sendTo(NULL)
    #8 /websoeba/www.webwerkstatt.org/avac/system/drivers/DC_Table.php(1845): esBeMail->sendAll(Object(DC_Table))
    #9 /websoeba/www.webwerkstatt.org/avac/system/modules/backend/Backend.php(287): DC_Table->edit()
    #10 /websoeba/www.webwerkstatt.org/avac/contao/main.php(120): Backend->getBackendModule('tl_es_bemail')
    #11 /websoeba/www.webwerkstatt.org/avac/contao/main.php(230): Main->run()
    #12 {main}

  24. #24
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Hallo joseph.ki,
    die beiden Erweiterungen funktionieren gut zusammen. Sie werden auch beide in der gleichen Contao-Installation entwickelt, so dass es nicht zu Inkompatibilitäten kommen sollte. Es wird wohl eher daran liegen, dass die Erweiterung nicht für 2.11.x freigegeben ist. Da ich mit dem e@sy business manager eine sehr umfangreiche Erweiterung für die Community entwickele und betreue, ist das nächste Update für meine anderen Extensions erst für Contao 3 geplant. Wenn Du die Erweiterung unbedingt für 2.11.x brauchst, kannst Du mich natürlich gerne damit beauftragen. Für solche Community-Sachen mache ich besonders gut Preise . Schicke mir einfach eine Mail.

    Viele Grüße,
    eS_IT
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  25. #25
    Contao-Nutzer
    Registriert seit
    21.02.2012.
    Beiträge
    27

    Standard be_email Installation

    Hallo eS-IT,

    erstmal vielen Dank für diese Erweiterung, die bestimmt eine geschickte Sache ist.
    Ich habe zunächst versucht diese in der Version 2.11.5 zu installieren und bin dann nach Fehlermeldung zurück auf die Version 2.10.4., da ich von einem Versionsproblem ausging.
    Allerdings bekomme ich unter 2.10.4 genau die gleiche Meldung beim Klick auf "Neue Mail"

    Fatal error: Uncaught exception Exception with message Query error: Unknown column 'alternate_email_2' in 'field list' (SELECT name, email, alternate_email, alternate_email_2, funktion FROM tl_user WHERE email != "" ORDER BY funktion) thrown in .../system/libraries/Database.php on line 689

    Der Fehler stimmt, diese Felder gibt es in der tl_user nicht. Was stimmt nun nicht, die Installation? Die Version?
    Ich wäre sehr dankbar, wenn Du mir einen Tipp hättest.

    - Simone

  26. #26
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Frage Du meinst wahrscheinlich be_email, nicht be_mail

    Zitat Zitat von Simone Beitrag anzeigen
    Hallo eS-IT,

    erstmal vielen Dank für diese Erweiterung, die bestimmt eine geschickte Sache ist.
    Ich habe zunächst versucht diese in der Version 2.11.5 zu installieren und bin dann nach Fehlermeldung zurück auf die Version 2.10.4., da ich von einem Versionsproblem ausging.
    Allerdings bekomme ich unter 2.10.4 genau die gleiche Meldung beim Klick auf "Neue Mail"

    Fatal error: Uncaught exception Exception with message Query error: Unknown column 'alternate_email_2' in 'field list' (SELECT name, email, alternate_email, alternate_email_2, funktion FROM tl_user WHERE email != "" ORDER BY funktion) thrown in .../system/libraries/Database.php on line 689

    Der Fehler stimmt, diese Felder gibt es in der tl_user nicht. Was stimmt nun nicht, die Installation? Die Version?
    Ich wäre sehr dankbar, wenn Du mir einen Tipp hättest.

    - Simone
    Hallo Simone,
    leider kann ich Dir bei Deinem Problem nicht helfen. Das ist nicht meine Erweiterung. markocupic hielt es für sinnvoll, seine Erweiterung fass genau so zu nennen wie meine. Wahrscheinlich hat ihm der Titel so gut gefallen. Meine heiß be_mail, seine be_email. Leider musst Du Dich an Ihn wenden, oder Du probierst meine aus .

    Viele Grüße,
    eS_IT
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  27. #27
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    819

    Standard Log für versendete emails?

    Hallo eS-IT,

    manchmal kommt es vor das ich emails längere Zeit vorbereitet habe.
    Und dann passiert es mir auch, das ich nicht mehr genau weis ob ich diese mail bereits versendet habe oder nicht.

    Gibt es einen logfile?
    Oder irgend was anders wo kann ich sehen ob eine e-mail bereits versendet wurde?

    Gruss dtptiger

  28. #28
    Contao-Fan Avatar von eS_IT
    Registriert seit
    21.07.2010.
    Ort
    Werne a. d. Lippe
    Beiträge
    585
    Partner-ID
    6161
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von dtptiger Beitrag anzeigen
    Hallo eS-IT,

    manchmal kommt es vor das ich emails längere Zeit vorbereitet habe.
    Und dann passiert es mir auch, das ich nicht mehr genau weis ob ich diese mail bereits versendet habe oder nicht.

    Gibt es einen logfile?
    Oder irgend was anders wo kann ich sehen ob eine e-mail bereits versendet wurde?

    Gruss dtptiger
    Hallo dtptiger,

    ich verstehe Dein Vorgehen nicht. So weit ich weiß wird bei BE_Mail sofort beim speichern die Mail versendet, ein speichern ohne senden ist nicht vorgesehen. Du kannst nur ohne die Mail zu speichern direkt senden, umgekehrt geht es nicht.

    Viele Grüße,

    eS-IT
    Geändert von eS_IT (28.04.2014 um 11:04 Uhr)
    Viele Grüße,
    eS_IT
    --
    e@sy Solutions IT - Ihr Partner für professionelle Softwareentwicklung
    Website - Contao Codebook - Partnerprofil - GitHub

  29. #29
    Contao-Fan Avatar von dtptiger
    Registriert seit
    20.06.2009.
    Ort
    Nürnberg
    Beiträge
    819

    Standard

    Hallo Hallo eS-IT,

    tschuldigung, falsche Baustelle ;-)

    Verwechslung

    Gruss
    dtptiger

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •