Mailversand mit Eurozeichen

Hier melden JVerein-Benutzer ihre Fehler

Moderator: heiner

Antworten
dl6lr
Beiträge: 13
Registriert: Donnerstag 20. März 2014, 22:38
Verein: Modellbaugruppe Bargteheide e.V.
Mitglieder: 32
JVerein-Version: 2.6.3
Betriebssystem: Win7-64

Mailversand mit Eurozeichen

Beitrag von dl6lr »

Hallo,

gerade bin ich darüber gestolpert, daß der Mailversand bei mir Eurozeichen in Fragezeichen wandelt. Dabei ist in der Mail sogar der richtige Zeichensatz ISO-8859-15 eingestellt. Die Vorschau zeigt noch € an. Auch die in den Gesendet-IMAP-Ordner gestellte Nachricht hat Fragezeichen:

-- snip --

MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_62_10688329.1395350088735"

------=_Part_62_10688329.1395350088735
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable
Content-Encoding: ISO-8859-15

Bitte pr=FCfe die folgenden Angaben sorgf=E4ltig und benachrichtige mich um=
gehend bei Fehlern.
[...]
Tremsb=FCtteler Weg 8=20
[...]

Beitrag Erwachsener ? 30,00

-- snip --

Das sieht danach aus als wenn irgendwo bei String.getBytes() das default-Encoding verwendet wird.
System.out.println(new String("Betrag äüö €7,00".getBytes(),"ISO-8859-15")); gibt "Betrag äüö ?7,00"
Default-Encoding ist windows-1252

JVerein 2.6.3
Jameica 2.7.0-nightly Build 601 20140308
Java 1.7.0_45 32bit
Windows7-64

Bernd
dl6lr
Beiträge: 13
Registriert: Donnerstag 20. März 2014, 22:38
Verein: Modellbaugruppe Bargteheide e.V.
Mitglieder: 32
JVerein-Version: 2.6.3
Betriebssystem: Win7-64

Re: Mailversand mit Eurozeichen

Beitrag von dl6lr »

So,

ich habe das Problem gelöst. Es war in /src/de/jost_net/JVerein/io/MailSender.java, dort wurde messageBodyPart.setContent( text, "text/plain") aufgerufen. Dies führt dazu, daß der String mit einem undefinierten Charsetencoding behandelt wird.
Der folgende Patch behebt das Problem:

Code: Alles auswählen

diff --git a/src/de/jost_net/JVerein/io/MailSender.java b/src/de/jost_net/JVerein/io/MailSender.java
index ed4633a..1282dfa 100644
--- a/src/de/jost_net/JVerein/io/MailSender.java
+++ b/src/de/jost_net/JVerein/io/MailSender.java
@@ -52,6 +52,8 @@
 public class MailSender
 {
 
+  private static final String ISO_8859_15 = "ISO-8859-15";
+
   public static class IMAPCopyData
   {
     private final boolean copy_to_imap_folder;
@@ -203,8 +205,8 @@
     props.put("mail.smtp.host", smtp_host_name);
     props.put("mail.debug", "true");
     props.put("mail.smtp.port", smtp_port);
-    props.put("mail.mime.charset", "ISO-8859-15");
-    System.setProperty("mail.mime.charset", "ISO-8859-15");
+    props.put("mail.mime.charset", ISO_8859_15);
+    System.setProperty("mail.mime.charset", ISO_8859_15);
 
     if (smtp_ssl)
     {
@@ -268,10 +270,10 @@
     }
     msg.setSubject(subject);
 
-    BodyPart messageBodyPart = new MimeBodyPart();
-    messageBodyPart.addHeader("Content-Encoding", "ISO-8859-15");
+    MimeBodyPart messageBodyPart = new MimeBodyPart();
+    messageBodyPart.addHeader("Content-Encoding", ISO_8859_15);
     // Fill the message
-    messageBodyPart.setContent(text, "text/plain");
+    messageBodyPart.setText(text, ISO_8859_15);
 
     Multipart multipart = new MimeMultipart();
     multipart.addBodyPart(messageBodyPart);
Bernd
Dateianhänge
jverein_HEAD_email_euro.patch
(1.32 KiB) 264-mal heruntergeladen
Benutzeravatar
heiner
Administrator
Beiträge: 4510
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Mailversand mit Eurozeichen

Beitrag von heiner »

Hallo,

ich habe die Änderungen übernommen.

Hinweis: Den Patch konnte ich nicht mit Eclipse verarbeiten. Da war Handarbeit angesagt.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
dl6lr
Beiträge: 13
Registriert: Donnerstag 20. März 2014, 22:38
Verein: Modellbaugruppe Bargteheide e.V.
Mitglieder: 32
JVerein-Version: 2.6.3
Betriebssystem: Win7-64

Re: Mailversand mit Eurozeichen

Beitrag von dl6lr »

Hallo Heiner,

merkwürdig, ich habe den Patch in Eclipse (Kepler) erstellt (Team/Create Patch).
Glücklicherweise waren das ja nur ein paar Zeilen.
Aber was mich wundert ist, daß das bisher noch keiner bemerkt hatte.

Bernd
Benutzeravatar
heiner
Administrator
Beiträge: 4510
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Mailversand mit Eurozeichen

Beitrag von heiner »

Es passiert immer wieder, dass Bugs erst sehr spät entdeckt werden. Heardbleed ;)

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Antworten