Re: balsa+libesmtp bug



On Fri,  4 May 14:37 Carlos Morgado wrote:

| > At present, Balsa cannot handle resending only the failed recipients
| > of a message.  The smtp_option_require_all_recipients() API is a
| > quick hack for Balsa's benefit and was intended to abort the session
| > if *any* recipients were rejecetd by the SMTP server.
| > 
| this seems more resonable than flaging succeful delivery when only the
| Bcc: (which actually is sent@chbm.nu) is accepted.

Removing the message from the outbox when some recipients are
undelivered is definitely wrong.

But then delivering the message to recipients who have been previously
accepted when retrying is wrong too.  Handling both cases correctly
is the tricky part.  Since doing this correctly requires SMTP
knowledge, the decision logic should be part of libESMTP.  I shall give
this more thought over the weekend.

| > One possibility that comes to mind is to record recipient status in
| > messages in the outbox and only send to recipients that have either
| > not been tried previously or have a transient failure (4xx) recorded
| > against them.  Finally, the message would be removed from the outbox
| > to the sentbox only when all recipients are accepted.
| >
| seems correct except for the auto Bcc: case. i think it should only
| be sent to auto-bcc after all other recipients are succefuly handled.
| in fact, i think auto-bcc should be handled when moving to sentbox as
| i don't see any use for it other than having a remote sentbox

Agreed.

| there should also be more feedback to the user about recipients with
| 5xx
| errors and possibly abort the send and move the message back to
| draftbox 
| in that case.

Agreed.  This is more a case of missing functionality rather than
a bug.  Recipients with 5xx are most likely due to domain names that
the MTA cannot find an MX or A record for.  In that case the recipient
may need to be corrected for the message to proceed.

Having said that however, it is possible undeliverable recipients
will be accepted and queued by the MTA which will subsequently send
a non-delivery notification (bounce) when it fails to locate MX/A
records for the recipient's domain.

The reason I don't like the idea of not sending to accepted recipients
when others fail is that when transient (4xx) errors occur and
two recipients are alternating between success and transient failure,
sending the message at all may become unnecessarily difficult.

regards
Brian Stafford




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]