[drupal-devel] [bug] Fix error reporting for failed mails to users
nedjo
drupal-devel at drupal.org
Mon Jul 4 21:00:29 UTC 2005
Issue status update for
http://drupal.org/node/20139
Post a follow up:
http://drupal.org/project/comments/add/20139
Project: Drupal
Version: cvs
Component: user.module
Category: bug reports
Priority: normal
Assigned to: Anonymous
Reported by: nedjo
Updated by: nedjo
-Status: active
+Status: patch
Not sure why this was reset to active. Logging is, I believe, a
distinct issue. The problems addressed by this patch are (a) drupal
claims mail has been sent when in fact it has not, (b) there is no way
to recover a password sent out in a failed email.
nedjo
Previous comments:
------------------------------------------------------------------------
April 7, 2005 - 14:12 : nedjo
Attachment: http://drupal.org/files/issues/user-mail-error-messages.patch (7.2 KB)
The user module has error handling for failed emails sent on password
changing, but not yet in other cases, so that users may register and
get a message that email has been sent when in fact it has not, an
issue reported, e.g., here [1]. This patch adds tests for mails sent
on user registration, generating appropriate user feedback (e.g.,
"Unable to send mail", etc.) and logs errors to the watchdog.
[1] http://drupal.org/node/20026
------------------------------------------------------------------------
April 7, 2005 - 14:16 : killes at www.drop.org
Looks goog, +1. I also consider the lack of tests a bug.
------------------------------------------------------------------------
April 7, 2005 - 15:49 : Dries
Maybe we can extend user_mail() to log failed mail() attempts? Like
that, all such instances would automatically get logged.
------------------------------------------------------------------------
April 7, 2005 - 16:35 : killes at www.drop.org
user_mail() has no idea of the context in which it is called. So error
messages would be vague at best. I think the patch should go in as it
is.
------------------------------------------------------------------------
April 9, 2005 - 10:36 : nedjo
There are (at least) four types of actions we sometimes want on mail
attempts: logging (both success and failure) and a user response
message (again, both success and failure). So, even if user_mail()
handled logging (e.g., through two additional optional arguments passed
in, success and failure messages), we would still have to test for
success or failure of the call to know what message to return to the
user.
Or else pass in four arguments, with the user message (success or
failure) returned. But that seems awkward at best, and also defeats
the desirable practice of returning false on failure.
Anyone see an elegant way to handle this programatically? If not,
handling each call separately as I've done is probably the way to go.
------------------------------------------------------------------------
July 3, 2005 - 09:40 : samo
I don't know if this is relevant...
Modules like subscriptions, emailpage, and og all send emails out to
users. With a large enough userbase, I can imagine a scenario where
you would want to disable emails being sent out to a user after a
certain bounce/failure limit is hit (like Mailman does). Logging a
failure inside "user_mail" makes sense to me, but I am curious to hear
if this is an issue for others.
I see a separate table for bounced/failed emails (time, uid) and then a
cron job to disable sending emails to a user after the bounce limit is
hit.
More information about the drupal-devel
mailing list