发邮件,请教LWP::UserAgent和Net::SMTP的问题。

发邮件,请教LWP::UserAgent和Net::SMTP的问题。

想在公司网内发邮件,用了如下代码:
#!/usr/local/bin/perl -w
use Net::SMTP;
   
    $smtp = Net::SMTP->new(
                          'smtp.mycompany.com'
                           ) || die "Cannot connect to server!";

    $smtp->auth('username','password') || print "Auth error!";

    $smtp->mail('somebody');
    $smtp->to('somebody@mycompany.com');
    $smtp->data();
    $smtp->datasend("To: Mr Liu\n");
    $smtp->datasend("\n");
    $smtp->datasend("This is a good mail!\n");
    $smtp->dataend();
    $smtp->quit;
但是收不到邮件。
于是我怀疑是不是和公司的代理服务器有关,公司上外网是同所代理的,端口号也不是80.  我查到用LWP::UserAgent的proxy可以设代理:
$ua->proxy(['http'], 'http://username:password@proxyserver.com:port/');
所以有两个疑问:
1,我感觉已经设了smtp server就应该不用设代理服务器了,因为发邮件应该只和smtp有关,现在的情况是不是必须要用LWP::UserAgent设代理才能发邮件呢?
2,如果smtp和代理都要设,但是这连个分属两个模块,方法和属性不能通用怎么办?
多谢各位!

其实我几个月前写过这个代码,成功了,昨天要用,结果没找到。现在彻底忘了当时怎么写的了,人还不算老,脑子不好使了,郁闷!
我以前也发过,但是如果在公司内部的话,只有加了域才能发,否则打死也调不出来.我也不知道是为什么...可能和服务端防火墙有关?
搞定了,这句有错:
$smtp->mail('somebody');
somebody不能随便写,要写成somebody@xxx.com.
开了dubeg, 看到了错误提示。