Hallo,
darf ich im body von _inetmail kein "&" verwenden??
[autoit]_INetMail("test@test.de", "betreff", "a & b")
[/autoit]öffnet eine mail mit nur dem a im Body..
Weiß jemand rat wie man das verhindert?
Danke
Franz
Hallo,
darf ich im body von _inetmail kein "&" verwenden??
[autoit]_INetMail("test@test.de", "betreff", "a & b")
[/autoit]öffnet eine mail mit nur dem a im Body..
Weiß jemand rat wie man das verhindert?
Danke
Franz
Versuch's mal mit & statt &.
ok. und wie genau meinst du?
[autoit]_INetMail("test@test.de", "betreff", "a & b")
[/autoit]Ja, genau so dachte ich mir das.
geht bei mir nicht. Nur das a im body der mail.
geht bei mir nicht. Nur das a im body der mail.
Hallo Franz,
der Grund dafür wird bei einem Blick in die Funktion "_INetExplorerCapable" der UDF "inet.au3" ersichtlich.
Hier wird ein "mailto"-String erzeugt, wie Du Ihn auch in einem voherigen Thread benutzt hattest, welcher dann von der Funktion "_inetMail" an den Standard-Mailclient übergeben wird.
Das "&" wird hierbei allerdings als Beginn einer Option gesehn, wie z.B. "&body=". Bei unbekannten Optionen wird der Rest des Strings einfach ignoriert. Damit dies nicht geschieht, müssen alle "&"-Zeichen, die keine Option einleiten, in %26 umgewandeltet werden.
Eine Möglichkeit wäre, die Funktion "_INetExplorerCapable" entsprechend zu erweitern:
[autoit]$s_IEReturn = StringRegExpReplace($s_IEReturn, "&(?!cc|bcc|body)", "%26")
[/autoit]Komplette Funktion:
Func _INetExplorerCapable($s_IEString)
If StringLen($s_IEString) <= 0 Then Return SetError(1, 0, '')
Local $s_IEReturn
Local $n_IEChar
For $i_IECount = 1 To StringLen($s_IEString)
$n_IEChar = '0x' & Hex(Asc(StringMid($s_IEString, $i_IECount, 1)), 2)
If $n_IEChar < 0x21 Or $n_IEChar = 0x25 Or $n_IEChar = 0x2f Or $n_IEChar > 0x7f Then
$s_IEReturn = $s_IEReturn & '%' & StringRight($n_IEChar, 2)
Else
$s_IEReturn = $s_IEReturn & Chr($n_IEChar)
EndIf
Next
; ersetzt alle "&"-Zeichen, denen nicht "cc", "bcc" oder "body" folgt, in %26
$s_IEReturn = StringRegExpReplace($s_IEReturn, "&(?!cc|bcc|body)", "%26")
Return $s_IEReturn
EndFunc
Gruß
Moctezuma III.
super danke. das funktioniert!