You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openmeetings.apache.org by Maxim Solodovnik <so...@gmail.com> on 2013/02/16 05:01:30 UTC

Emails need to be resend

Hello All,

I'm going to implement MailQ to be able to resend emails in case of any
error is occurred.

Currently we have following list of emails:

   1. Meeting reminder (sent by schedule, periodically)
   2. Invitation to the room
   3. Appointment creation/modification/cancellation
   4. User creation
   5. Password reset
   6. Feedback
   7. Add user to the contact list/accept it

I believe all emails from the list above except for 1) should be added to
the mail Q instead of being immediately sent and keep sending until success.

Do you have any concerns/ideas regarding the topic?
I'm going to implement my solution in case there will be no objections :)


-- 
WBR
Maxim aka solomax

Re: Emails need to be resend

Posted by Maxim Solodovnik <so...@gmail.com>.
OK
this seems to be implemented and commited.


On Sun, Feb 17, 2013 at 4:04 AM, seba.wagner@gmail.com <
seba.wagner@gmail.com> wrote:

> The last time I did that I just replaced the class "MailHandler"
> All emails are processed by it.
>
> If added a table "mail_queue" with the fields:
> subject, body, status, receipients, status, error (all string, receipients
> can be a comma separated list of emails)
>
> And then the MailHandler just adds entries to this table with status "new".
> And a scheduler checks every xx seconds this table and processes the first
> 10 entries where status LIKE "new" and sets the status to "processing".
> If the Mail sending itself throws and error/exception, this string is
> written to "error" and the status is set to "fail".
> If the mail sending is "sucess" the record will be deleted from the table.
>
> If the entry is status LIKE "new" => status is new and the mail will be
> send
> If the entry is status LIKE "processing" => the mail is currently in
> sending process
>
> So the queue does only process those emails that are status LIKE "new" to
> prevent double sending, and by keeping the failed ones we might in the
> future be able to show some nice UI dialog in the Admin UI with the error
> report (and give the admin an option to delete even those entries after
> checking it).
>
> Sebastian
>
>
> 2013/2/16 seba.wagner@gmail.com <se...@gmail.com>
>
> Yeah sure just go ahead
>> Am 16.02.2013 17:01 schrieb "Maxim Solodovnik" <so...@gmail.com>:
>>
>> Hello All,
>>>
>>> I'm going to implement MailQ to be able to resend emails in case of any
>>> error is occurred.
>>>
>>> Currently we have following list of emails:
>>>
>>>    1. Meeting reminder (sent by schedule, periodically)
>>>    2. Invitation to the room
>>>    3. Appointment creation/modification/cancellation
>>>    4. User creation
>>>    5. Password reset
>>>    6. Feedback
>>>    7. Add user to the contact list/accept it
>>>
>>> I believe all emails from the list above except for 1) should be added
>>> to the mail Q instead of being immediately sent and keep sending until
>>> success.
>>>
>>> Do you have any concerns/ideas regarding the topic?
>>> I'm going to implement my solution in case there will be no objections :)
>>>
>>>
>>> --
>>> WBR
>>> Maxim aka solomax
>>>
>>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> seba.wagner@gmail.com
>



-- 
WBR
Maxim aka solomax

Re: Emails need to be resend

Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
The last time I did that I just replaced the class "MailHandler"
All emails are processed by it.

If added a table "mail_queue" with the fields:
subject, body, status, receipients, status, error (all string, receipients
can be a comma separated list of emails)

And then the MailHandler just adds entries to this table with status "new".
And a scheduler checks every xx seconds this table and processes the first
10 entries where status LIKE "new" and sets the status to "processing".
If the Mail sending itself throws and error/exception, this string is
written to "error" and the status is set to "fail".
If the mail sending is "sucess" the record will be deleted from the table.

If the entry is status LIKE "new" => status is new and the mail will be send
If the entry is status LIKE "processing" => the mail is currently in
sending process

So the queue does only process those emails that are status LIKE "new" to
prevent double sending, and by keeping the failed ones we might in the
future be able to show some nice UI dialog in the Admin UI with the error
report (and give the admin an option to delete even those entries after
checking it).

Sebastian


2013/2/16 seba.wagner@gmail.com <se...@gmail.com>

> Yeah sure just go ahead
> Am 16.02.2013 17:01 schrieb "Maxim Solodovnik" <so...@gmail.com>:
>
> Hello All,
>>
>> I'm going to implement MailQ to be able to resend emails in case of any
>> error is occurred.
>>
>> Currently we have following list of emails:
>>
>>    1. Meeting reminder (sent by schedule, periodically)
>>    2. Invitation to the room
>>    3. Appointment creation/modification/cancellation
>>    4. User creation
>>    5. Password reset
>>    6. Feedback
>>    7. Add user to the contact list/accept it
>>
>> I believe all emails from the list above except for 1) should be added to
>> the mail Q instead of being immediately sent and keep sending until success.
>>
>> Do you have any concerns/ideas regarding the topic?
>> I'm going to implement my solution in case there will be no objections :)
>>
>>
>> --
>> WBR
>> Maxim aka solomax
>>
>


-- 
Sebastian Wagner
https://twitter.com/#!/dead_lock
http://www.webbase-design.de
http://www.wagner-sebastian.com
seba.wagner@gmail.com

Re: Emails need to be resend

Posted by "seba.wagner@gmail.com" <se...@gmail.com>.
Yeah sure just go ahead
Am 16.02.2013 17:01 schrieb "Maxim Solodovnik" <so...@gmail.com>:

> Hello All,
>
> I'm going to implement MailQ to be able to resend emails in case of any
> error is occurred.
>
> Currently we have following list of emails:
>
>    1. Meeting reminder (sent by schedule, periodically)
>    2. Invitation to the room
>    3. Appointment creation/modification/cancellation
>    4. User creation
>    5. Password reset
>    6. Feedback
>    7. Add user to the contact list/accept it
>
> I believe all emails from the list above except for 1) should be added to
> the mail Q instead of being immediately sent and keep sending until success.
>
> Do you have any concerns/ideas regarding the topic?
> I'm going to implement my solution in case there will be no objections :)
>
>
> --
> WBR
> Maxim aka solomax
>