![]() |
IDMessage und Umlaute in der Emailadresse
Hi Zusammen,
wie stelle ich es an, kommt immer ne Fehlermeldung (Syntax Erro in paramters or arguments) |
AW: IDMessage und Umlaute in der Emailadresse
Solche Zeichen "richtig" codieren?
punycode |
AW: IDMessage und Umlaute in der Emailadresse
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); |
AW: IDMessage und Umlaute in der Emailadresse
Emailadressen sind immer ASCII.
D.h. wenn du Umlaute in der Emailadresse verwenden willst MUSST du punycode ( ![]() |
AW: IDMessage und Umlaute in der Emailadresse
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. |
AW: IDMessage und Umlaute in der Emailadresse
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]); |
AW: IDMessage und Umlaute in der Emailadresse
Du musst doch das "xn--" nicht rausnehmen,
das kann ich mir echt nicht vorstellen. War aber ewig her, dass ich Puny-Umsetzung gemacht habe. |
AW: IDMessage und Umlaute in der Emailadresse
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. |
AW: IDMessage und Umlaute in der Emailadresse
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?
|
AW: IDMessage und Umlaute in der Emailadresse
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:
Dann via Indy nachsehn, also die Mail runterladen und gucken war überall in den Property drin steht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz