Wherever possible, avoid scattering hardcoded constants throughout the code. Instead, aim to make the script easily configurable. As a first step, move any data which could change into a hash:
my %config
(
smtp_destination => 'mail.server.com',
nas_array_ip_list => 'C:/path/to/nas_array_ip_list.txt',
smtp_msg_from => 'name@email.com',
smtp_msg_to => 'name@email.com',
mail_file => 'C:/path/to/dmcheck.txt',
username => 'username',
password => 'password',
reason => '/nas/sbin/getreason',
nasmailmsg_from => 'name@email.com',
nasmailmsg_to => 'name@email.com',
dm_check => 'dmcheck.txt',
);
and access the hash data as needed:
MIME::Lite->send('smtp', $config{smtp_destination});
if (! open my $fh, '<', $config{nas_array_ip_list})
...
As the next step, you may find it useful to populate the hash by reading in the data from a separate configuration file.