I've done a good bit of benchmarking of Net::SMTP vs other methods for sending mail, and have found that Net::SMTP (or another SMTP transporter) is almost always the winner. But you can do some things in SMTP that would hurt performance. A few things that could be effecting you:
- SMTP connections - it is best when using SMTP to establish one connection to the mailer and then pipe multiple messages across this connection. This may not be an option if you are sending only a single message with your CGI.
- reverse DNS - if your mail server is doing reverse-DNS lookups on each connection that could also slow down your aparent throughput when using Net::SMTP