"@" symbol in password in applescript
Rather than using the in-line form to give the username and password, you can specify them as parameters for the mount volume command. Changing the final line to the following will work with passwords with special characters:

mount volume "smb://" &amp; server_name &amp; "/" &amp; share_name &amp; "/" &amp; user_name as user name user_name with password pass_word