in reply to removing carriage returns

You came _this_ close to getting it right :)
while ($requests = <REQUESTS>) { if ($requests ne "\n") { print MAIL "$requests"; } }
The problem is that single quotes don't convert things like \n, so you were printing everything except lines that contain a literal \, followed by a literal n.

In the "there's more than one way to do it" tradition, you could just use the grep command.

print MAIL grep !/^$/,<REQUESTS>;
The "empty line" regular expression will work because $ will match just before the \n.

You could also write your code using the "suffix" form of the condition.

while ($requests = <REQUESTS>) { print MAIL $requests if $requests ne "\n"; }
or
while ($requests = <REQUESTS>) { print MAIL $requests unless $requests=~/^$/; }
Hope this helps!
--
Mike (Edit: had fouled up the grep example)