Entwickler-Ecke
Sonstiges (Delphi) - HTML Code verhindert übergabe
FFKangoroo - Di 18.04.06 17:54
Titel: HTML Code verhindert übergabe
Hi, ich bins mal wieder.
Kurze Erläuterung:
Mein Programm soll eine HTML Seite an Outlook oder Firefox als neue Mail übergeben.
Ansatz:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| uses ShellApi;
procedure SendMail(MailAddress : string; Subject : string; body : string); begin ShellExecute(Application.Handle, 'open', PChar('mailto:' + MailAddress + '?' + 'subject=' + Subject + '&' + 'body='+ Body), nil, nil, sw_ShowNormal); end; |
Aufruf:
Delphi-Quelltext
1:
| SendMail('support@testdomain.de', 'testbetreff', '<html>hier die htmlseite</hmtl>'); |
hier Hat er die Umlaute im HTML code nicht übertragen sondern einfach aufgehört und nur den halben Code abgeliefert.
Mir wurde darauf hin geraten die Umlaute per ersetzen zu ändern.
Soweit so gut:
Das Umschreiben war kein Problem blos, die Umlaute sind nicht die einzigen Probleme. Die Kurzen Retunrns und Tabulatoren machen auch murks denn sie sind im gleichen Format(&befehl;) und werden nicht mitübergeben.
Wie kann ich die denn umschreiben, dass es geht? Oder gibt es einen anderen Weg?
Für Hilfe bin ich sehr dankbar!
Gruß
Das FFKangoroo
Moderiert von
raziel: Quote- durch Delphi-Tags ersetztModeriert von
raziel: Topic aus Internet / Netzwerk verschoben am Mi 19.04.2006 um 15:17
FFKangoroo - Mi 19.04.06 12:15
Hab jetzt mal n bissel rumgesucht.
Ergebnis:
Es liegt nicht am ganzen HTML Code, sondern am & (Ampersand) das soll irgendwie ein Accelchar sein. Dieses gibt nil aus wenn es nicht durch einen Direktbefehl aus einer Caption definiert wurde. Weiter heisst es dass durch drücken der ALT Taste dieser Befehl ausgegeben wird. Ich versteh das so wenn ich das in einen Button oder einer Menubar vor einen Buchstaben schreibe kann ich dann ALT+[Buchstabe] drücken und das Programm führt die dazu gehörige Prozedur aus(Bsp.: ALT+S bei ICQ für Senden), schön und gut aber warum verhindert es dann die Übergabe des Codes? das Memofeld ist keien Caption, sondern Text. Oder ist dieser Aufruf als Caption deklariert?
Hab auch schon versucht die ganzen & in ihre ASCII Codes darstellen zu lassen aber vergebens(hab ihn nicht gefunden! müsste normal 38 sein #38 gibt aber - aus und ORD(&) spuckt ein Fehler aus ist ungültig ($26)!
Weiss einer Rat?
Danke
FFKangoroo
FFKangoroo - Mi 19.04.06 23:43
Nach einer kleinen Unterredung mit einem Administrator, der mir gesagt hat das meine Problemstellung nicht ganz nachvorziehbar ist, kommt hier der neue Versuch.
Wie oben beschrieben Soll eine HTMLcode aus einem Memofeld an ein Mailprogramm übergeben werden.
Die Übergabeprozedur findet Ihr oben, sie ist die selbe wie bei mir.
Der Aufruf lautete so:
Delphi-Quelltext
1:
| SendMail(Adresse.text, betreff.text, code); |
code ist ein String vom Typ ansistring.
In ihm steht sowas wie
Quelltext
1: 2: 3:
| <html> <Body> Das ist eine Einladung für Uwe </Body></html> |
Was das Programm übergibt ist aber nur:
Quelltext
1: 2:
| <html> <Body> Das ist eine Einladung f |
Das '&' nimmt er nicht mit und hört einfach danach auf mit der Übergabe. Die Frage lautet warum? Und wie kann ich es beheben?
Einfach die Umlaut codes in die richtigen Buchstaben(ü -> ü) wandeln bringt nichts, denn die sind nicht das einzige Problem, gibt ja noch die ganzen anderen Befehle wie kurze retunrs und Tabulatoren die man nicht einfach umschreiben kann.
Hoffe nu ist es verständlicher.
Bedanke mich jetzt schon
FFKangoroo
Lannes - Do 20.04.06 00:18
Hallo,
eventuell hilft Dir das weiter(der letzte Beitrag):
http://www.entwickler-forum.de/WebX?14@193.mLvjauV9kdf.1@.4a873ad0/7
da werden u.a. auch Zeilenumbrüche übertragen, anstelle von #13#10 mit '%0D%0A', wobei da die 13 und 10 in Hex umgerechnet sind.
Kannst ja auch mal dementsprechend für '&' ( #38 ) mit '%26' testen.
raziel - Do 20.04.06 08:10
Aaaah, jetzt versteh ich das Problem :think:
Probiers mal statt mit deiner Ersetzfunktion mit UTF8Encode :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!