Newsletter Handler Module V3.0.1 + mehrsprachige e-mails

abrek
Beiträge: 103
Registriert: Mi 25. Jan 2006, 12:50
Kontaktdaten:

Newsletter Handler Module V3.0.1 + mehrsprachige e-mails

Beitrag von abrek » Do 23. Feb 2006, 16:30

Wie HerrB in seinem posting über Newsletter Module geschrieben hat, kann man Handler Article nur einmal pro Mandant bestimmen.

Wie gehe ich am besten vor, wenn ich mehrere davon brauche (einen pro Sprache), weil charset u.a. im Newsletter leider auf iso-8859-1 festgelegt ist?

Oder wie kann man class.phpmailer.php erweitern, damit es automatisch nach dem Sprache-Encoding im Administration -> Sprachen festgelegt wird? Bin leider kein Programmierer, aber brauche es wirklich.
Beste Grüße
abrek

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 27. Feb 2006, 17:03

Man kann nur einen Handler Article pro Mandant haben, dies ist aber - wenn das Contenido-Sprachfeature verwendet wird - kein Problem. Wichtig ist nur, dass der Newsletter Handler-Artikel in den anderen Sprachen über die Synchronisierungsfunktion erzeugt wird - er muss in allen Sprachen die gleiche Artikel-ID (idart) haben.

Bzgl. des Charsets müsstest Du mal einen Blick in die class.phpmailer.php werfen - ich selbst setze sie nicht.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

abrek
Beiträge: 103
Registriert: Mi 25. Jan 2006, 12:50
Kontaktdaten:

Beitrag von abrek » Di 28. Feb 2006, 14:26

Hallo HerrB,

mit einem Handler Article pro Mandant habe ich schon im Griff, danke. Da musste ich dein Posting langsamer lesen. Super Modul, wenn man weiß, wie es mit Mehrsprachigkeit umgeht. :oops:

Was ich noch dringend brauche (Der Chef hat immer … was auch immer) – Password muss nur durch den admin manuell vergeben werden
(Password generieren und manuell freischalten).

Das heißt, jeder angemeldete User muss immer News-Empfänger sein,
außerdem im admin muss bei jedem User ein Häkchen „Password für geschützten Bereich generieren“ sein und der Password muss nur bestimmte Zeit gültig sein.

Z.B. so: „Häkchen“ „Password für geschützten Bereich generieren. Password ist bis _xx.xx.xxxx_ gültig“.
Ist das möglich ohne große PHP-Kenntnisse zu machen? Oder hat jemand so was schon gemacht?

Was class.phpmailer.php betrifft: ich hab es gefunden, wo Charset vergeben wird, aber es ist festgelegt. Hast Du vielleicht ein Tipp, wie ich weiter vorgehen soll
Z.B. so was:

Code: Alles auswählen

if ($lang == "1" || $lang == "2" || $lang == "6")
{ $CharSet = "iso-8859-1"; }

if ($lang == "8")
{ $CharSet = "iso-8859-9"; }

if ($lang == "9")
{ $CharSet = "iso-8859-5"; }

Und weiter? Wie kann ich $CharSet in class.phpmailer.php übergeben?

Vielen Dank für Deine Mühe im Voraus!
Beste Grüße
abrek

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 28. Feb 2006, 18:27

ich hab es gefunden, wo Charset vergeben wird, aber es ist festgelegt
Ich helfe gern, bin aber gerade ein wenig faul: Wenn Du mir verrätst, wo es gesetzt wird (= Auszug Code), verrate ich Dir, wie man es machen könnte... :wink:
Password muss nur durch den admin manuell vergeben werden
(Password generieren und manuell freischalten).
und
„Häkchen“ „Password für geschützten Bereich generieren. Password ist bis _xx.xx.xxxx_ gültig“.
passen nicht zusammen.

Die erste Anforderung wäre relativ leicht zu implementieren: Das Handler-Modul so konfigurieren, dass ein Frontenduser-Account erzeugt wird und eine Bestätigung den Account aktiviert.

Nun im Output des Handler-Moduls im confirm-Bereich diese Zeile ändern:

Code: Alles auswählen

$frontenduser->set("active",1);
in

Code: Alles auswählen

$frontenduser->set("active",0);
Nun kann der Admin manuell die Accounts aktivieren (Administration -> Frontend), ohne ein PW verschicken zu müssen.

Natürlich sollte man da dann auch die Texte, die das Modul verschickt, entsprechend anpassen.

Die zweite Anforderung ist schwer, da man höchstens über die cronjobs einen Weg realisieren könnte, der die Gültigkeit überprüft - das ist richtig Aufwand (mal abgesehen davon, dass man einen Speicherort für die Daten benötigt).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

abrek
Beiträge: 103
Registriert: Mi 25. Jan 2006, 12:50
Kontaktdaten:

Beitrag von abrek » Mi 1. Mär 2006, 09:25

HerrB hat geschrieben: Ich helfe gern, bin aber gerade ein wenig faul: Wenn Du mir verrätst, wo es gesetzt wird (= Auszug Code), verrate ich Dir, wie man es machen könnte... :wink:


Dank für die Mühe!
Es wird ganz am Anfang in class.phpmailer.php Zeile 38 gesetzt:
/**
* Sets the CharSet of the message.
* @access public
* @var string
*/
var $CharSet = "iso-8859-1";
Beste Grüße
abrek

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 12. Mär 2006, 21:02

Vor dem Senden jeweils mit <MailObjekt>->Charset = $encoding[$lang]; die Sprache einstellen. Das muss auch in der class.newsletter.php angepasst werden.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Mi 19. Apr 2006, 09:25

Ich habe das gleiche Problem. Meine Website ist sechssprachig, wobei die Zeichensätze für rumänische, bulgarische, serbokroatische und albanische Sprache verwendet werden.
Nur leider bin ich bei der Erklärung nicht mitgekommen.
Was muss ich genau machen, damit im Mail-Header die Angabe bei "Content-Type" korrekt auf den jeweiligen Zeichensatz eingestellt und mitgeschickt wird?
Also statt immer: text/plain; charset = "iso-8859-1"
z.B. bei mazedonisch: text/plain; charset = "iso-8859-5"

Vielen Dank für die Hilfe
Markus

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 19. Apr 2006, 11:07

Teste es zunächst mit dem Newsletter-Handler-Modul. Dort findest Du im Output z.B. bei submit oder confirm ein Mail-Objekt.

Genauso, wie dort <Mail-Objekt>->From = bla steht, ergänzt Du jeweils die Zeile <MailObjekt>->Charset = $encoding[$lang];

Wenn das funktioniert, dann in die class.newsletter.php gehen. Dort gibt es eine Send()-Funktion.

Die Zeile

Code: Alles auswählen

		global $cfg, $cfgClient, $client, $lang, $auth;
in

Code: Alles auswählen

		global $cfg, $cfgClient, $client, $lang, $auth, $encoding;
Unter

Code: Alles auswählen

		$mail = new phpmailer();
die Zeile

Code: Alles auswählen

		$mail->Charset = $encoding[$lang];
ergänzen.

Ungetestet, bitte testen...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Mi 19. Apr 2006, 11:36

Also verstanden habe ich das jetzt und die Änderungen vorgenommen. Aber das E-mail kommt immer noch mit dem falschen Content-Type und wird folglich nur mit unglaublichen Sonderzeichen angezeigt: ²ÐèÐâÐ ÐÔàÕáÐ ×Ð Õ-ßÞèâÐ Õ àÕÓØáâàØàÐÝÐ ÒÞ ÛØáâ

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 19. Apr 2006, 12:15

Welche genau?

Welches Encoding steht im Header der Mail? Was kommt bei einem echo $encoding[$lang]; raus?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Mi 19. Apr 2006, 14:45

Im Header der E-Mail steht immer noch charset = "iso-8859-1"

echo $encoding[$lang]; ergibt schön brav iso-8859-5

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 19. Apr 2006, 20:38

Auch wenn ich mich wiederhole: Welche E-Mail genau? Aus dem Handler-Modul? Beim Versenden des Newsletters?

Hast Du die Änderung für alle Objekte durchgeführt (im Handler-Modul mindestens zweimal)?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Do 20. Apr 2006, 09:24

Ich habe jetzt immer nur versucht, mich auf mazedonisch anzumelden und die Mail, die beim Anmelden geschickt wurde, kam eben in Kauderwelsch. Dort wo der Link zum Bestätigen mitgeschickt wird. Also noch gar nicht mit normalem Newsletter-Versand versucht.

Nun hatte ich aber eine kurze Eingebung und im Handler-Modul (das $mail-Objekt kommt übrigens an drei verschiedenen Stellen vor) statt jeweils ...Charset... überall ...CharSet... geschrieben. Und siehe da, die Mail wird richtig decodiert. Im Header steht nun korrekt das CharSet iso-8859-5.

Also das werde ich nun weiterverfolgen und mal versuchen, einen richtigen Newsletter an mich zu verschicken.

Was noch nicht gut ist, ist aber der Mail-Betreff. Komischerweise wird der Mail-Text super in kyrillisch angezeigt, aber nicht die Betreff-Zeile. Hast Du eine Ahnung, wie das gehen kann?

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 20. Apr 2006, 11:18

Vermutlich ohne weiteres gar nicht, da dazu dem Betreff das CharSet mitgegeben werden müsste... ich weiss gar nicht, ob und ggf. wie das geht...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Do 20. Apr 2006, 17:11

Also ich habe nun etwas rumgesucht und herausgefunden (wow!), dass im Header nur 7-bit ASCII-Zeichen verwendet werden dürfen, und deshalb andere Zeichen MIME-kodiert werden müssen.
Hier:
http://de.wikipedia.org/wiki/Header_%28E-Mail%29

Nur bin ich jetzt natürlich wieder am Anschlag. Wie um Himmels Willen soll ich jetzt den Betreff MIME-kodieren?

Ich habe übrigens nun alle Varianten von Newsletter Mails getestet (also Betätigungs-E-Mail, Abmelde-E-Mail und auch ein richtiges Newsletter-E-Mail). Mit den oben besprochenen Änderungen funktioniert das jetzt überall. Der Mail-Text wird nun mit allen erdenklichen Zeichensätzen richtig angezeigt.

Nur die Betreff-Zeile eben nicht!

Gesperrt