Forum OpenACS Q&A: mail and OpenACS

Collapse
Posted by Mat Kovach on
Okay a few of my ideas.

I'd really like to make the mail functions into
OpenACS and not rely on ns_sendmail.  If we want to
add some of the features we should have we need to have a
bit more control over how we send mail.

I'm open to suggestion. If we can reach a reasonable agreement I'll start coding what we decieded on.OpenACS has a few issues with the way that mail is
delivered from the system.  In the next few
version of OpenACS changes should be made in the
way creates, delivers and handles mail.

The following should be goals of the OpenACS replacement:

o Allow of the Generation of Message-ID (either from
  and outside MTA or generating them in OpenACS)

o Handling for bounces for all message delivered
  from and OpenACS server.

o Become MTA independant and remove less dependant
  on ns_sendmail (repalcing its functionaly with
  OpenACS code in an OpenACS package).

o Development of RFC complaint headers for specific
  purpose (mailing list type features, Message-IDs,
  reply-to, etc).

Tilmann Singer has started development of a
acs-mail-lite replacement which will work nicely
with the above goals.  I see no reason to duplicate
the this effort and suggest using this as a base
for going forward.

The first step that should be taken is the development
bounce handling.

Bounce handling should be handled the following way:

o The envelope (MAIL FROM: <address>> addresss should
  be set to bounce-<to address>@domain.  This will
  allow bounces to be sent back to an email handler
  on the OpenACS server.

o The MTA on the OpenACS server will need to be able
  to make use of extention address

  (mailto:address-extention@domain.com)

  Qmail, Courier, Sendmail, Postfix, and Exim are all
  able to handle this.  The handling of bounces will
  use a simular configuration to TMDA

  (http://tmda.net/config-pre.html)

o Bounces will come into the server, be parsed and
  that information stored in a bounce table which
  will include the email address, message id, and
  date of bounce.  We will have an admin page that
  will allow user to see they bounces (if any) and
  adminstrators to view all bounces and disable
  mail to specific accounts that chronic bounces.

o OpenACS will record the date time of the last
  message sent to each user.

o A configurable paramater will be set to allow the server
  to stop deliver of mail after a set period of days
  (recommand value 12 days).  If multiple bounces are
  recorded for a user that period of time a nightly
  process will send a final message to that use indicating
  that they are about to have their email address disable
  on the OpenACS server because of bounces.  If that message
  also bounces mail will be disable.  If it does not bounce
  after 24 then we will not disable the email and clear
  all bounces for that email.

This should allow for proper handling of any type of bounces
that can happen from email orginating from an OpenACS
server and allow from further expansions into larger mail
situations (ei: mailing list, larger newsletters, etc.).

We should be able to get this into OpenACS 4.7 as it
will require changes to package creating mail and I don't
think it would be correct to impose those changes in a
4.6.2 release.

After the proper handling of bounces, becomding MTA
independant and not relying on ns_sendmail it woulb
be easy to include packages to allow forums to become
more like a mailing list manager and allow for
newsletter packages, etc.

Collapse
2: Re: mail and OpenACS (response to 1)
Posted by Jeff Davis on
One very nice thing I saw egroups do was to disable sending to a bouncing addresses immediately but to send a periodic reminder to let the user know how to reenable email (not sure how long they kept sending it, I fixed the bouncing email).
Collapse
3: Re: mail and OpenACS (response to 2)
Posted by Mat Kovach on
That could easily be made into a configurable parameter, disable after X days OR disable after a bounce and send reminders for Y days.
Collapse
4: VERP? (response to 1)
Posted by Andrew Piskorski on
Mat, does your "handling for bounces" include taking advantage VERP where possible, Jeff, Mat, and Steve mentioned in those threads?
Collapse
5: Re: VERP? (response to 4)
Posted by Mat Kovach on
Yes, it does, I just used a different term"

"o The MTA on the OpenACS server will need to be able
  to make use of extention address

  (mailto:address-extention@domain.com)

  Qmail, Courier, Sendmail, Postfix, and Exim are all
  able to handle this.  The handling of bounces will
  use a simular configuration to TMDA

  (http://tmda.net/config-pre.html)"

Since a lot of people here VERP and think qmail, It was trying to use wording that didn't associate the ideas with a specific method of delivering mail or a MTA.

Also I'm going to apply the VERP system wide (all messages delivered by the server and not specific to a list, notification, etc.)

Collapse
6: Re: VERP? (response to 5)
Posted by Malte Sussdorff on
Hi Mat, any news on this front. Otherwise we will start implementing VERP with acs-mail soon.