A service like Protus Fax will do what you want, and you don't need a phone line.
All they do is issue with a number for receiving faxes (which just arrive at the designated e-mail account), and a password which you put at the top of any messages you wish to fax. As it supports MIME attachments, you could easily automate sending with MIME::Lite or similar.
I can't help you with receiving faxes, beyond saying that Protus sends them back as TIFF. We have ways of making TIFFs more friendly ...
--
$,="\n";foreach(split('',"\3\3\3c>\0>c\177cc\0~c~``\0cc\177cc"))
{$a++;$_=unpack('B8',$_);tr,01,\40#,;$b[$a%6].=$_};print@b,"\n" | [reply] |