ASINET eMail senden ... mit Umlauten

Vom Front-End bis SOAP.

Moderator: Moderatoren

Antworten
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

ASINET eMail senden ... mit Umlauten

Beitrag von brandelh »

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: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von Jan »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von brandelh »

Ich nutze da noch die 1.90.355 - ja mit dem SMTP Client.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von Jan »

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: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von Tom »

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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: ASINET eMail senden ... mit Umlauten

Beitrag von AUGE_OHR »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von brandelh »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von brandelh »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ASINET eMail senden ... mit Umlauten

Beitrag von brandelh »

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