First I would make sure all variables and macros are not enclosed in strings. This may not solve the issues but it is best practice to do so.

For example:
 Code:
...
if exist ($Log\OutlookSignature\@userid.txt")
...


will become:
 Code:
...
if exist ($Log + "\OutlookSignature\" + @userid + ".txt")
...


Second thing I notice is that you do a case sensitive check on the mobile number. Normally this is just numbers and possibly a + and () which are all not affected by lower or upper case.
What happens if you change the double == to a single = on this line? The last two variables are also missing the $ character.

 Code:
...
if $x = $strName or $x = $strTitle or $x = $strMail or $x = $strDepartment or $x = $strCompany or $x = $strPhone or $x == strMobile or $x = strWeb
...


Edited by Mart (2015-01-05 12:15 PM)
_________________________
Mart

- Chuck Norris once sold ebay to ebay on ebay.