ASINET eMail senden ... mit Umlauten

Vom Front-End bis SOAP.

Moderator: Moderatoren

Antworten
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14880
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

ASINET eMail senden ... mit Umlauten

Beitrag von brandelh » Fr, 29. Nov 2019 13:21

Hallo,

ich versende aus einer Anwendung heraus eMails, den Text gebe ich teilweise fix vor, teilweise wird er in ANSI erfasst.
Wenn nun ein Umlaut drin ist, kommen seltsame Fragezeichen beim Empfänger an ... da war irgendwas mit MIMI ...

Kann mir jemand auf die Schnelle zeigen wie man den Text an Asinet übergeben muss, dass das nicht mehr auftritt ?
Gruß
Hubert

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13570
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von Jan » Fr, 29. Nov 2019 13:26

Hubert,

vielleicht vorher auf UTF-8 konvertieren?

Machst Du das SMTPClient()

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14880
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von brandelh » Fr, 29. Nov 2019 13:32

Ich nutze da noch die 1.90.355 - ja mit dem SMTP Client.
Gruß
Hubert

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13570
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von Jan » Fr, 29. Nov 2019 13:52

Hubert,

OK, das ist natürlich blöd. Aber google doch mal danach, ANSI nach UTF-8 per API zu konvertieren. Ich hab da ein paar (meist umfangeriche) Skripte gefunden. Wäre einen Versuch wert.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7793
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von Tom » Fr, 29. Nov 2019 14:02

Xb2.Net hat da Funktionen für, Pablos Klasse auch. Und für eine simple ANSI/OEM->UTF-8-Konvertierung gibt's auch hier im Forum Beispielfunktionen.
Zuletzt geändert von Tom am Fr, 29. Nov 2019 14:03, insgesamt 1-mal geändert.
Herzlich,
Tom

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12168
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: ASINET eMail senden ... mit Umlauten

Beitrag von AUGE_OHR » Fr, 29. Nov 2019 14:03

ot4xb

Code: Alles auswählen

cAnsiToUtf8( cAnsi ) -> cUtf8

cUtf8ToAnsi(cUtf8) -> cAnsi

cOemToUtf8(cOem) -> cutf8

cUtf8ToOem(cUtf8) -> cOem
gruss by OHR
Jimmy

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14880
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von brandelh » Fr, 29. Nov 2019 14:21

ich kann doch aber nicht davon ausgehen, dass das eMail Programm UTF8 automatisch richtig verarbeitet, die ganze eMail ist doch gar nicht in utf8 oder ?

hier meine gekürzte Versand Funktion:

Code: Alles auswählen

Function SendAsinet(aEmpfaenger,cBetreff,cText,cProgPfad,aAttachFile,cAntwortAdresse,cID)
   ...
   LOCAL oSmtp      := SMTPClient():new( GetSmtpServer(),,, oLog, 2 )
   LOCAL oMail      := MIMEMessage():new()
   ...
   DEFAULT aEmpfaenger TO  { EmailAdresseOK() }
   DEFAULT cBetreff    TO    "Test eMail von ASINET"
   DEFAULT cText       TO  ( "Test eMail von ASINET" + CRLF )
   DEFAULT cID         TO  dtos(date())+"-"+strTran(time(),":","")
   ...
   oMail:setFrom     ( oSender     )
   oMail:setSubject  ( cBetreff    )
   oMail:setMessage  ( cText       )
   aeval(aEmpfaenger, {|cEmp| oMail:addRecipient(MailAddress():new(cEmp) ) })
   // Verbessert einen AsiNet Fehler.
   ? "Setze Datum und Zeit, TimeStampSMTP() = ",TimeStampSMTP()," : ",;
   oMail:addHeader( "Date", TimeStampSMTP() )
   if ! empty(cAntwortAdresse)
      oMail:addHeader( "Reply-To", cAntwortAdresse )
   endif
   ...
   IF oSmtp:connect(cServerConnectUser,cKW)
      IF oSmtp:send( oMail )
         lOK := .t.
         ? "Message sent"
      ELSE
         ? "Unable to deliver message"
      ENDIF

      oSmtp:disconnect()
   ELSE
      ? "Unable to connect to mail server"
   ENDIF
   ...   
RETURN lOK
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14880
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von brandelh » Fr, 29. Nov 2019 14:25

Muss ich evtl. da was anderes setzen :

:setContentTransferEncoding( <cContentTransferEncoding> ) --> lSuccess

was wäre für Windows deutsches Ansi der richtige Wert ?
oder der für UTF8 ?

PS: die UFT8 Funktionen habe ich schon, Pablos dll nutze ich auch aus anderen Gründen.
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14880
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von brandelh » Sa, 30. Nov 2019 10:47

im Internet unter PHP hab ich die Syntax entdeckt und direkt in den Header geschrieben ...

Code: Alles auswählen

   /* 2.00.091 #2019
      $headers[] = "MIME-Version: 1.0";
      $headers[] = "Content-type: text/plain; charset=utf-8";
      UTF8 übertragung einbauen start
   */

   oMail:addHeader( "Content-type" , "text/plain; charset=utf-8" )
   oMail:setMessage  ( cAnsiToUtf8( cText ) )

   // UTF8 übertragung einbauen ende
seltsamerweise haben danach auch die Umlaute im Betreff in meinem GMX Postfach gestimmt.
Gruß
Hubert

Antworten