Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Exim, for the love of Perl

by Anonymous Monk
on Jan 24, 2005 at 15:51 UTC ( #424613=note: print w/replies, xml ) Need Help??

in reply to Exim, for the love of Perl
in thread Which MTA is best to use with Perl....

I agree with some of the other replies that most people, if they're composing and sending email with perl, use SMTP so that it can work with any MTA (unless you already wanted to limit yourself to a certain MTA), so the MUA discussion is moot.
I don't think this is good advice. If you're going to use SMTP, you should also be willing to deal with all sorts of problems, like the MTA you're connecting to being down, (temporarely) refusing connection, or otherwise not willing to accept your mail right now. Which means you have to do build the "keep and retry" mechanism yourself.

I rather call /usr/lib/sendmail (whether that's from sendmail, or a drop-in replacement from another MTA) that will place my mail in the appropriate queue, then connect to port 25 and just pray my call gets accepted.

Replies are listed 'Best First'.
Re^2: Exim, for the love of Perl
by nerfherder (Monk) on Jan 24, 2005 at 18:53 UTC
    On the other hand, using SMTP for sending makes it downright convenient to return an informative error message to the user (and logs, hopefully) if the connection is refused or relaying denied.

    Using a "keep and retry" mechanism could mislead the user into thinking that the mail has been sent and presumed delivered, when in fact it hasn't. If you're in some sort of corporate environment, warm up your support ear! ;-)
      1. I assume your SMTP solution is going to deliver all mail to a "smart host", and isn't going to do MX resolving itself, and deliver the mail to one of the servers returned. In that case, if you get a "relaying denied" error, you have a serious problem - it basically means all you may be able to do send mail to local users. Your error message should have been "this solution is never ever going to work".
      2. If the user gets a "connection refused" message, he'll be pissed. He doesn't want a "connection refused" message from an MTA. He wants the MTA to queue the mail and retry again. That's the task of the MTA - not the task of the user. This problem was solved more than 30 years ago.
      3. If you just fill in a correct return address errors, not only the error message will be send to the user, the mail as sent will be returned as well, even if there's a problem (like 'relaying denied') further down the line.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://424613]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2021-10-28 02:09 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (95 votes). Check out past polls.