Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Umlaute und Absender in idMessage (https://www.delphipraxis.net/158167-umlaute-und-absender-idmessage.html)

Jumpy 8. Feb 2011 11:02

Umlaute und Absender in idMessage
 
Bei uns werden aus u.a. historischen Gründen unterschiedliche Mailkomponenten verwendet (z.B. auch für untersch. Delphi-Verionen). Damit die aber alle gleich aussehen, sind diese jeweils in einer einfallsreich TMail genannten Klasse gekapselt.

Ich soll nun diese Kapselung für Delphi 10 mit Indy10-Komponenten durchführen. Benutze dazu die Indykomponenten idMessage und idSMTP und habe bei Testmails schon zwei Probleme:

a) Der Absendername kommt nicht an, obwohl mMn gesetzt.
b) Umlaute im Body werden verschluckt.

Zu b): Wirklich verschluckt, d.h. nicht durch ? oder ähnliches ersetzt. Im Betreff/Subject klappt das aber! Habe schon mit CharSet rumprobiert, aber bisher ohne Erfolg.

Hier mal die initiallisierung von idMessage:

Delphi-Quellcode:
function TMail.getidMessage: TidMessage;
var i : Integer;
begin
  if self.fidMessage = nil then
    self.fidMessage := Tidmessage.Create(nil);
  self.fidMessage.Priority := mpNormal;
  self.fidMessage.Date:= now;
//  self.fidMessage.CharSet:= 'ISO-8859-15';

  self.fidMessage.From.Text:= Absendername;
  self.fidMessage.Sender.Text:=Absendername;
  for i:=0 to FFrom.Count-1 do
    self.fidMessage.ReplyTo.EMailAddresses := FFrom.Strings[i];
  //self.fidMessage.ReplyTo.Assign(FFrom);
  for i:=0 to FTo.Count-1 do
    self.fidMessage.Recipients.EMailAddresses := FTo.Strings[i];
  //self.fidMessage.Recipients.Assign(FTo);
  for i:=0 to FBcc.Count-1 do
    //self.fidMessage.BccList.EMailAddresses :=
    showmessage(FBcc.Strings[i]);
  //self.fidMessage.BccList.Assign(FBcc);
  for i:=0 to FCc.Count-1 do
    self.fidMessage.CcList.EMailAddresses := FCc.Strings[i];
  //self.fidMessage.CcList.Assign(FCc);

  self.fidMessage.Subject:= Betreff;
  self.fidMessage.Body.Clear;
  self.fidMessage.Body:= FBody;

  result:= self.fidMessage;
end;
Hier der Aufruf der Klasse in einem Form:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Mail:TMAIL;
begin
  Mail:=TMail.Create;
  Mail.An:='mich@zuhause.de';
  Mail.Von:='mama@papa.de';
  Mail.Absendername:='Max Mustermann';
  Mail.Betreff:= 'Hallöchen däs  ist ein übeler Straßentest';
  Mail.Text:='Hallöchen däs  ist ein übeler Straßentest';
  Mail.Text:='';
  Mail.Text:='Dies ist das Ende';
  Mail.Send;
  Mail.Free;
end;

Jumpy 8. Feb 2011 14:08

AW: Umlaute und Absender in idMessage
 
Das mit dem Absender hat sich erledigt. Man muss dazu wie es scheint den Namen und die Mail-Adresse angeben:

Delphi-Quellcode:
self.fidMessage.From.Text:= AbsenderMail;
self.fidMessage.From.Name:=Absendername;
Das seltsame Verhalten mit den Umlauten hab ich immer noch nicht raus. Vor allem, da bei allen ähnl. Problemen die ich im Netz (und hier im Forum) gefunden habe, die Umlaute durch irgendwas ersetzt wurden, statt einfach verschluckt zu werden.

Jumpy 9. Feb 2011 14:35

AW: Umlaute und Absender in idMessage
 
Hallo,
konnte das Problem mit den "verschwindenden Umlauten" etwas eingrenzen. Es tritt nur auf, wenn ich im Betreff Umlaute habe. Die werden dann im Betreff richtig angezeigt, im Body aber verschluckt.
Sind im Betreff keine Umlaute, so werden die Umlaute im Body nicht verschluckt.

Bei dieser Mail mit dem Betreff "test" wurde der Body korrekt angezeigt:
Hab hier mal die Mail-Infos und den Body:
Code:
Microsoft Mail Internet Headers Version 2.0
Received: from V_7_DELPHI ...;
    Wed, 9 Feb 2011 15:13:13 +0100
From: "Thomas Braun" <ThomasBraun>
Subject: test
To: schmitt@...
Date: Wed, 9 Feb 2011 15:13:10 +0100
Return-Path: ThomasBraun@...
Message-ID: <MX01eFXvjQN0hIQFBRO000005b0@...>
X-OriginalArrivalTime: 09 Feb 2011 14:13:13.0402 (UTC) FILETIME=[7CF639A0:01CBC863]
Body:
Code:
Hi du!
Hallöchen däs  ist ein übeler Straßentest

Dies auch. jo
Hier nun lautet der Betreff "täst". Man beachte die Subjekt-Zeile:
Code:
Microsoft Mail Internet Headers Version 2.0
Received: from V_7_DELPHI...;
    Wed, 9 Feb 2011 15:21:09 +0100
From: "Thomas Braun" <ThomasBraun>
Subject: =?UTF-8?B?dMOkc3Q=?=
To: schmitt@...
Date: Wed, 9 Feb 2011 15:21:06 +0100
Return-Path: ThomasBraun@...
Message-ID: <MX01d2stb2en0bcaQUX000005b4@...>
X-OriginalArrivalTime: 09 Feb 2011 14:21:09.0426 (UTC) FILETIME=[98B1B920:01CBC864]
Der Body mit verschluckten Umlauten:
Code:
Hi du!
Hallchen ds  ist ein beler Straentest

Dies auch. jo

Zusatzinfo: Schick ich beide Mails an meine Privatadresse (web.de) Kommen beide Mail korrekt mit Umlauten an. Kann das nun irgendwie am Outlook/Exchange-Server in der Firma liegen?

Muss man da am Outlook oder Server was machen oder kann man die idMessage-Komponente so konfigurieren, dass das egal ist?

Kann einer was mit dem Verhalten anfangen?

Bernhard Geyer 9. Feb 2011 14:37

AW: Umlaute und Absender in idMessage
 
Zitat:

Zitat von Jumpy (Beitrag 1080537)
Kann das nun irgendwie am Outlook/Exchange-Server in der Firma liegen?

Habt ihr auf Outlook 2007/2010 aktualisiert und alte Postfächer übernommen?

Jumpy 9. Feb 2011 15:10

AW: Umlaute und Absender in idMessage
 
Haben noch Outlook 2000 SP3.

Bernhard Geyer 9. Feb 2011 19:38

AW: Umlaute und Absender in idMessage
 
Zitat:

Zitat von Jumpy (Beitrag 1080551)
Haben noch Outlook 2000 SP3.

da weiß ich jetzt nicht ob die das immer korrekt machen. Beim Umstieg jedenfalls vermasselt Outlook die Codierung wenn man ein altes Postfach übernimmt.

Jumpy 9. Feb 2011 20:32

AW: Umlaute und Absender in idMessage
 
Danke schon mal für den Tipp mit Outlook, da bin ich zur Zeit auf Internetrecherche.

Hab z.Zt. aber einen workarround, mit dem ich aber nicht glücklich bin:
Ich frage ab, ob ä,ö,ü,ß im Betreff enthalten sind, falls ja stell ich CharSize auf UTF-8, sonst nicht.

Würd ich das immmer auf UTF-8 stellen, so werden die Mail-Body-Umlaute durch komische Zeichen ersetzt, wenn im Betreff keine Umlaute sind.

Es scheint, dass die idMessage Komponete irgendwie (z.B. wegen Umlauten im Betreff) entscheidet ob irgendwie codiert werden soll und die Mail entsprechend (oder mit entsprechendem Header??) rausschickt. Manche Mailserver (z.B. der unserer Firma) oder Outlook?? scheinen dann damit nicht umgehen zu können.

Ist aber nur reine Spekulation, weil ich mich mit den ganzen Codierungen, Mailprotokollen usw. erst sein heute beschäftige und nicht wirklich einen Plan habe.

Falls also jemand einen Hinweis hätte was ich noch probieren könnte, immer her damit.

Sir Rufo 9. Feb 2011 21:04

AW: Umlaute und Absender in idMessage
 
Wenn du basteln möchtest nimm die Indys

Willst du einfach nur stressfrei Mails versenden nimm synapse

Jumpy 10. Feb 2011 07:22

AW: Umlaute und Absender in idMessage
 
Guter Tip. Werd ich im Laufe des Tages mal ausprobieren, wobei ich auf der Webseite nicht gesehen habe, ob es mit Win7 und Delphi10 läuft. Mal schauen...

Sir Rufo 10. Feb 2011 08:23

AW: Umlaute und Absender in idMessage
 
Zitat:

Zitat von Jumpy (Beitrag 1080753)
Guter Tip. Werd ich im Laufe des Tages mal ausprobieren, wobei ich auf der Webseite nicht gesehen habe, ob es mit Win7 und Delphi10 läuft. Mal schauen...

läuft :) die Unit ist mit verantwortlich für meinen Mail-Eingang, darum muss die laufen :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz