Replace system() calls for mail with Net::SMTP




17 years ago
6 years ago


(Reporter: barnboy, Assigned: jacob)





17 years ago
I would like to suggest a fundamental change to the way Bugzilla handles email.
 This change would, overall, dramatically increase the ease with which those
using non-sendmail Mail Transport Agents can make email work with Bugzilla.

The fundamental problem is lines like this:
(insert system() call for sendmail here)
1.  This invokes a system() call, which spawns a new external process.  By and
large, this isn't a problem, but it does involve additional memory and processor
overhead on the machine, particularly so on large installations.
2.  This system process blocks while it is executing, thus requiring workarounds
like sending it all to a local queue for later delivery.  In general, if your
MTA should queue before send, this is a global setting -- it's just not clean
doing it this way.
3.  The use of sendmail makes those using non-sendmail MTA's have to sometimes
hack code to make it work, or alternately remove the queueing option in
editparams.cgi to make it work.  We get this several times a month from new
users, and it's an unnecessary complication.

My suggestion:
Replace all system(sendmail) type calls with Net::SMTP calls.  It introduces a
dependency on the Perl Net module, and also requires they have a functional SMTP
server on-site.  However, this is no more complex than requiring sendmail!   If
the user has sendmail installed, they can make a Net::SMTP connection to their
local machine, and it removes any connection problems out of Bugzilla's domain
and into the domain of their mailer -- a clear delineation it would be nice to
have.  If they don't have sendmail installed, they can point it at their ISP's
SMTP server, or any other local SMTP server, or (heaven forbid) one of the
numerous open relays out on the Internet.

This has been done several times by Win32 admins.  If I get comments approving
this change, I'll move forward with patching the requisite calls once 2.16 is
out (since, I believe, we are in feature freeze right now).

Comment 1

17 years ago
Marking as dupe of bug 84876, since that patch cvoers it!

*** This bug has been marked as a duplicate of 84876 ***
Last Resolved: 17 years ago
Resolution: --- → DUPLICATE
QA Contact: matty_is_a_geek → default-qa
You need to log in before you can comment on or make changes to this bug.