Erweiterung zur Auswahl der Versandart für Newsletter

Ideen für neue Funktionen in CONTENIDO?
Antworten
Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Erweiterung zur Auswahl der Versandart für Newsletter

Beitrag von Spider IT » Fr 23. Sep 2011, 10:02

Hallo Contenido-Entwickler,

ich habe die Newsletter-Funktionalität erweitert um die Möglichkeit, per System-Experteneinstellungen und/oder Mandanteneinstellungen die Versandart festzulegen (mail / smtp / sendmail / qmail).
Hierzu habe ich in den Core-Dateien contenido/includes/classes/class.newsletter.php und contenido/includes/classes/class.newsletter.jobs.php, sowie in dem Modul Newsletter-Handler die Zeile (achtung, mehrfache Vorkommen)

Code: Alles auswählen

			$oMail->Mailer		= "mail";
ersetzt durch

Code: Alles auswählen

/* Spider IT Deutschland :: Mailer Configuration --> */
#			$oMail->Mailer		= "mail";
			$sMailer			= strtolower(getEffectiveSetting("newsletter", "mailer"));
			if (strlen($sMailer) == 0) {
				setSystemProperty("newsletter", "mailer", "mail");
				$sMailer		= "mail";
			}
			$oMail->Mailer		= $sMailer;
			if ($sMailer == "smtp") {
				$oMail->SMTPAuth = true;
				$oMail->Host     = getEffectiveSetting("newsletter", "host");
				$iPort           = intval(getEffectiveSetting("newsletter", "port"));
				if ($iPort == 0) {
					$iPort = 25;
				}
				$oMail->Port     = $iPort;
				$oMail->Username = getEffectiveSetting("newsletter", "username");
				$oMail->Password = getEffectiveSetting("newsletter", "password");
			}
/* <-- Spider IT Deutschland :: Mailer Configuration */
Die zusätzlichen Einstellungen sind:
  • newsletter - mailer - (mail / smtp / sendmail / qmail, mail wenn nicht angegeben)
  • newsletter - host - (Adresse des SMTP-Mailservers)
  • newsletter - port - (Port des SMTP-Mailservers, 25 wenn nicht angegeben)
  • newsletter - username - (Login auf dem SMTP-Mailserver, üblich ist die eMail-Adresse)
  • newsletter - password - (Kennwort für das SMTP-Postfach)
Es wäre schön, würde dies in die nächste Version mit einfließen.
Danke!

Gruß
René

xmurrix
Beiträge: 2646
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Erweiterung zur Auswahl der Versandart für Newsletter

Beitrag von xmurrix » Fr 23. Sep 2011, 10:58

Hallo René,

eine sehr guter Vorschlag. Was haltest du davon, wenn man gleich die Klasse PHPMailer anpasst, so dass die Versandart direkt in der Klasse, z. B. im Konstruktor, gesetzt werden kann. So muss man nicht jedes mal, wenn man den Mailer verwenden will, die Versandart setzen. Das Ganze wäre dann auch von einer Stelle aus steuerbar.

Der PHPMailer hat sowieso CONTENIDO spezifische Funtionen verpasst bekommen, da macht meiner Meinung nichts aus, wenn man da auch noch die Steuerung der Versandart hinzufügt.

@all:
Weitere Vorschläge dazu sind gerne willkommen, aber bitte ohne Rundum-Kahlschlag ;-)

Gruß
Murat
CONTENIDO downloads: CONTENIDO 4.9.12
CONTENIDO links: Documentation, API documentation

McHubi
Beiträge: 992
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Erweiterung zur Auswahl der Versandart für Newsletter

Beitrag von McHubi » Fr 23. Sep 2011, 12:13

Hallo,

Es wäre sinnvoll noch einmal auf folgende Punkte einzugehen:
1) Wie kann man das Anmeldeformular um weitere Datenfelder erweitern? Z. B. Name, Vorname, Geschlecht, PLZ usw... Hier ist zwar im Quellcode ein Kommentar enthalten aber so wirklich werde - zumindest ich - nicht daraus schlau. Es klappt einfach nicht.
2) Die Einbindung der zusätzlichen Datenfelder in den späteren Newsletter um z. B. eine persönliche Ansprache zu realisieren.

Das Ganze war/ist auch hier schon Thema, allerdings "festgefahren": http://forum.contenido.org/viewtopic.ph ... newsletter

Danke :D
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Die NEUAUFLAGE des Buchs zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Erweiterung zur Auswahl der Versandart für Newsletter

Beitrag von Spider IT » Fr 23. Sep 2011, 13:32

Hallo Murat,

wenn die Einstellungen dann immer noch zentral steuerbar sind (Experten-/Mandanteneinstellungen) ist mir das recht.
Allerdings sollte dann aus Kompatibilitätsgründen die Möglichkeit des nachträglichen Einstellens bleiben, denn es gibt einige Module, in den das bereits integriert ist.
Außerdem sollte es möglich sein, pro Formular separate Einstellungen zu machen.
Aber du hast schon recht, eine generelle Einstellmöglichkeit wäre schön.

Gruß
René

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Erweiterung zur Auswahl der Versandart für Newsletter

Beitrag von Spider IT » Fr 23. Sep 2011, 13:43

Hallo McHubi,

Daten speichern:

Code: Alles auswählen

            cInclude('classes', 'class.frontend.users.php');
            $oFrontendUsers = new FrontendUserCollection;
            if ($frontenduser = $oFrontendUsers->create($sLogin)) {
                $frontenduser->set('password', $sPassword);
                # Zusaetzliche Angaben
                $frontenduser->setProperty('Kontakt', 'Nachname', Contenido_Security::escapeDB($sNachname));
                $frontenduser->setProperty('Kontakt', 'Vorname', Contenido_Security::escapeDB($sVorname));
                $frontenduser->setProperty('Kontakt', 'StrasseNr', Contenido_Security::escapeDB($sStrasseNr));
                $frontenduser->setProperty('Kontakt', 'Plz', Contenido_Security::escapeDB($sPlz));
                $frontenduser->setProperty('Kontakt', 'Ort', Contenido_Security::escapeDB($sOrt));
                $frontenduser->setProperty('Kontakt', 'E-Mail', Contenido_Security::escapeDB($sEmail));
                $frontenduser->store();
            }
Auslesen der Daten:

Code: Alles auswählen

        cInclude('classes', 'class.frontend.users.php');
        $oFrontendUsers = new FrontendUserCollection;
        $oFrontendUsers->setWhere('idclient', $client);
        $oFrontendUsers->setWhere('username', $sLogin);
        $oFrontendUsers->query();
        if ($frontenduser = $oFrontendUsers->next()) {
            $sMsg  = '<br />&nbsp; ' . $frontenduser->getProperty('Kontakt', 'Vorname') . ' ' . $frontenduser->getProperty('Kontakt', 'Nachname');
            $sMsg .= '<br />&nbsp; ' . $frontenduser->getProperty('Kontakt', 'StrasseNr');
            $sMsg .= '<br />&nbsp; ' . $frontenduser->getProperty('Kontakt', 'Plz') . ' ' . $frontenduser->getProperty('Kontakt', 'Ort');
            $sMsg .= '<br />&nbsp; ' . $frontenduser->getProperty('Kontakt', 'E-Mail');
        }
Für das Nutzen der Daten in den Newsletter habe ich leider keine Lösung parat, genauso wie zum Anzeigen der Daten unter Administration - Frontend.

Gruß
René

Oldperl
Beiträge: 3989
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Erweiterung zur Auswahl der Versandart für Newsletter

Beitrag von Oldperl » So 25. Sep 2011, 19:18

Hallo,
xmurrix hat geschrieben:Was haltest du davon, wenn man gleich die Klasse PHPMailer anpasst,
Also das fände ich nicht gut, der phpMailer in Contenido ist nicht angepasst und auserdem wird die Klasse mehrfach in Contenido und in Modulen verwendet und sie ist eigentlich eine externe Library, die immer noch entwickelt wird!
Daher, wenn überhaupt, gehören Contenido-spezifische Änderungen NUR in eine abgeleitete Klasse. Die phpMailer-Klasse selbst gehört IMO sogar in ein lib- oder external-Verzeichnis.

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

xmurrix
Beiträge: 2646
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Erweiterung zur Auswahl der Versandart für Newsletter

Beitrag von xmurrix » So 25. Sep 2011, 21:22

Oldperl hat geschrieben:...
Also das fände ich nicht gut, der phpMailer in Contenido ist nicht angepasst und auserdem wird die Klasse mehrfach in Contenido und in Modulen verwendet und sie ist eigentlich eine externe Library, die immer noch entwickelt wird!
Daher, wenn überhaupt, gehören Contenido-spezifische Änderungen NUR in eine abgeleitete Klasse. Die phpMailer-Klasse selbst gehört IMO sogar in ein lib- oder external-Verzeichnis...
Hast recht, der PHPMailer sollte eigentlich nicht geändert werden, hat aber schon an ein paar Stellen Änderungen bekommen (i18n, MailSend und EncodeFile). Ok, das Ganze muss man sich dan wohl genauer ansehen...

Gruß
Murat
CONTENIDO downloads: CONTENIDO 4.9.12
CONTENIDO links: Documentation, API documentation

Antworten