AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein IDMessage und Umlaute in der Emailadresse
Thema durchsuchen
Ansicht
Themen-Optionen

IDMessage und Umlaute in der Emailadresse

Ein Thema von gaisser · begonnen am 8. Nov 2021 · letzter Beitrag vom 11. Nov 2021
Antwort Antwort
Seite 1 von 2  1 2      
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#1

IDMessage und Umlaute in der Emailadresse

  Alt 8. Nov 2021, 15:03
Hi Zusammen,

wie stelle ich es an, kommt immer ne Fehlermeldung (Syntax Erro in paramters or arguments)
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: IDMessage und Umlaute in der Emailadresse

  Alt 8. Nov 2021, 15:12
Solche Zeichen "richtig" codieren?


punycode
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: IDMessage und Umlaute in der Emailadresse

  Alt 8. Nov 2021, 15:23
Mit UTF-8, ISO-8859-1 und windows-1252 geht es leider nicht.

Anbei ein Auszug

Delphi-Quellcode:
  try
    IdMessage.MessageParts.Clear;
    IdMessage.Date := Now;
    // IdMessage.CharSet := 'ISO-8859-1';
    IdMessage.CharSet := CbCharSet.Text;
    IdMessage.ContentType := 'multipart/related + multipart/mixed + text/plain ' +
      '+ text/html + multipart/alternative + application/pdf ';
    IdMessage.AttachmentTempDirectory := SysUtils.GetEnvironmentVariable('temp');
    SL := TStringList.Create;

    SL.Text := HTMLText;
    MailText := betreff;
    with TIdMessageBuilderHtml.Create do
    begin
      try
        // Wenn HTML Mail ist
        if frmEinstellungen.cbHTML.Checked = True then
        begin
          html.Text := SL.Text;
        end
        else // HTML Mails
          PlainText.Text := SL.Text;
        // Ende Images herausfinden
        // Normale Anhänge hinzufügen
        if FileExists(xAnhang) then
          Attachments.Add(xAnhang);
        if FileExists(frmHaupt.xFileName1) then
          Attachments.Add(frmHaupt.xFileName1);
        if FileExists(frmHaupt.xFileName2) then
          Attachments.Add(frmHaupt.xFileName2);
        if FileExists(frmHaupt.xFileName3) then
          Attachments.Add(frmHaupt.xFileName3);
        if FileExists(frmHaupt.xFileName4) then
          Attachments.Add(frmHaupt.xFileName4);
        if FileExists(frmHaupt.xFileName5) then
          Attachments.Add(frmHaupt.xFileName5);
        // Ende Normale Anhänge

        FillMessage(IdMessage);
      finally
        Free;
      end;
    end;
    IdMessage.Subject := MailText;
    IdMessage.From.Address := frmSetup.Email.Text;
    IdMessage.From.Name := EdName.Text;
    if EdReplayTo.Text <> 'then
      IdMessage.ReplyTo.EMailAddresses := EdReplayTo.Text
    else
      IdMessage.ReplyTo.EMailAddresses := frmSetup.Email.Text;
    IdMessage.CharSet := CbCharSet.Text;
    IdMessage.Recipients.EMailAddresses := empfaenger;
    if BCC <> 'then
      IdMessage.BccList.EMailAddresses := BCC;

    IdSMTP.Host := frmSetup.SMTPServer.Text;
    IdSMTP.Username := frmSetup.edtAccount.Text;
    IdSMTP.Password := frmSetup.edtPassword.Text;
    IdSMTP.Port := StrToInt(frmSetup.SMTPPort.Text);

    xAuthCange;

    IdSMTP.Connect;
    if IdSMTP.Authenticate then
    begin
      IdSMTP.Send(IdMessage);
    end
    else
      MessageDlg('Login fehlerhaft', mtError, [mbOk], 0, mbOk);
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#4

AW: IDMessage und Umlaute in der Emailadresse

  Alt 8. Nov 2021, 16:13
Emailadressen sind immer ASCII.
D.h. wenn du Umlaute in der Emailadresse verwenden willst MUSST du punycode (https://de.wikipedia.org/wiki/Punycode) nutzen.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: IDMessage und Umlaute in der Emailadresse

  Alt 8. Nov 2021, 16:50
Na ja, im Grunde hätte auch der Hersteller (Indy) innerhalb der Komponente dieses Encoding machen können.

Hat er aber nicht, also muß man selber ran.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: IDMessage und Umlaute in der Emailadresse

  Alt 8. Nov 2021, 16:59
Das funktioniert leider auch nicht, was mach ich falsch?

Delphi-Quellcode:
    IdMessage.Subject := MailText;
    IdMessage.From.Address := StringReplace(Turi.UnicodeToIDNA(frmSetup.Email.Text),'xn--','',[rfReplaceAll]);
    IdMessage.From.Name := EdName.Text;
    if EdReplayTo.Text <> 'then
      IdMessage.ReplyTo.EMailAddresses := StringReplace(Turi.UnicodeToIDNA(EdReplayTo.Text),'xn--','',[rfReplaceAll])
    else
      IdMessage.ReplyTo.EMailAddresses := StringReplace(Turi.UnicodeToIDNA(frmSetup.Email.Text),'xn--','',[rfReplaceAll]);;
    IdMessage.CharSet := CbCharSet.Text;
    IdMessage.Recipients.EMailAddresses := StringReplace(Turi.UnicodeToIDNA(empfaenger),'xn--','',[rfReplaceAll]);
    if BCC <> 'then
      IdMessage.BccList.EMailAddresses := StringReplace(Turi.UnicodeToIDNA(BCC),'xn--','',[rfReplaceAll]);
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
Incocnito

Registriert seit: 28. Nov 2016
223 Beiträge
 
#7

AW: IDMessage und Umlaute in der Emailadresse

  Alt 9. Nov 2021, 08:03
Du musst doch das "xn--" nicht rausnehmen,
das kann ich mir echt nicht vorstellen.
War aber ewig her, dass ich Puny-Umsetzung gemacht habe.
  Mit Zitat antworten Zitat
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: IDMessage und Umlaute in der Emailadresse

  Alt 9. Nov 2021, 08:32
Kommt halt immer die Meldung das Mailbox nicht erreichbar ist, obwohl es diese Mailadresse gibt. Im Outlook kann ich ohne Probleme an die Mailadresse senden.
Das mit dem Replace hab ich im Web gefunden.
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#9

AW: IDMessage und Umlaute in der Emailadresse

  Alt 9. Nov 2021, 11:20
Ich vermute das man nur den Teil, der den Domainname repräsentiert (zwischen @ und Punkt), kodieren muss. Nicht die ganze Adresse und auch nicht alle Adressen gemeinsam bei mehreren Empfängern. Wie sollte ohne "xn--" erkannt werden, das es sich um eine kodierte Adresse handelt?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#10

AW: IDMessage und Umlaute in der Emailadresse

  Alt 9. Nov 2021, 14:26
Ja, alle teile einzeln kodiert
doamin, subdomain, mail/name und der Pfad nach der Domain (bei URLs) .... und das auch jeweils mit unterschiedlichen Codierungen.

Zitat:
Vermuten
Im Notfall kann man einfach mal eine eMail versenden/empfangen, welche soeinem Schema entspricht ... mit einem anderem Mailprogramm.

Dann via Indy nachsehn, also die Mail runterladen und gucken war überall in den Property drin steht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr.
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