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
Mailversand mit Eurozeichen
Moderator: heiner
-
- 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
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:
Bernd
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);
- Dateianhänge
-
- jverein_HEAD_email_euro.patch
- (1.32 KiB) 264-mal heruntergeladen
- heiner
- Administrator
- Beiträge: 4510
- Registriert: Freitag 30. Oktober 2009, 16:44
- JVerein-Version: aktuelle Entwicklerversion
- Betriebssystem: W10
- Kontaktdaten:
Re: Mailversand mit Eurozeichen
Hallo,
ich habe die Änderungen übernommen.
Hinweis: Den Patch konnte ich nicht mit Eclipse verarbeiten. Da war Handarbeit angesagt.
Heiner
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.
-
- 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
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
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
- heiner
- Administrator
- Beiträge: 4510
- Registriert: Freitag 30. Oktober 2009, 16:44
- JVerein-Version: aktuelle Entwicklerversion
- Betriebssystem: W10
- Kontaktdaten:
Re: Mailversand mit Eurozeichen
Es passiert immer wieder, dass Bugs erst sehr spät entdeckt werden. Heardbleed
Heiner

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