Details

    • Type: Feature Request
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 3.0.0.Alpha1
    • Component/s: None
    • Labels:
      None

      Description

      > Another thing the current implementation does is render and send at the same
      > time. This is a bad idea as well. You'd generally want to save the rendered?
      > email, and retry on send errors.

      Email has two types of errors, those that the MTA will automatically retry for, and those that cause bounces. If you are referring to bounces, how do you process the bounces?

        Gliffy Diagrams

          Activity

          Hide
          clerum Cody Lerum added a comment -

          The only two errors that I can think of that would be in the scope of this would be

          1. If the smtp server is down. This probably should be handled as adding a backup relay server. I don't think it makes sense to turn seam into a full blown mail relay server which queues messages

          2. If the message if malformed (invalid email address ?) and the relay server rejects it.

          Show
          clerum Cody Lerum added a comment - The only two errors that I can think of that would be in the scope of this would be 1. If the smtp server is down. This probably should be handled as adding a backup relay server. I don't think it makes sense to turn seam into a full blown mail relay server which queues messages 2. If the message if malformed (invalid email address ?) and the relay server rejects it.
          Hide
          pmuir Pete Muir added a comment -

          Yes, (2) and (1) will bubble up as an exception which should be handled by Seam's exception handling.

          What about the case the error comes from another MTA in the chain. I think typically a user would intercept that error, and ask the system to resend a message. This is definitely a common use case, and something we should make easy. I think if we could persist mail messages somehow, this would go a long way to making this easy.

          Show
          pmuir Pete Muir added a comment - Yes, (2) and (1) will bubble up as an exception which should be handled by Seam's exception handling. What about the case the error comes from another MTA in the chain. I think typically a user would intercept that error, and ask the system to resend a message. This is definitely a common use case, and something we should make easy. I think if we could persist mail messages somehow, this would go a long way to making this easy.
          Hide
          clerum Cody Lerum added a comment -

          So basically this just overlaps with SEAMMAIL-5 thus storing the messages via JPA so the user could write their own logic to select a message from the DB and resend it.

          Or are you suggesting that seam be checking the email box for the from address to read and act upon the NDR messages sent by downstream MTAs possibly days after the original email was sent?

          Show
          clerum Cody Lerum added a comment - So basically this just overlaps with SEAMMAIL-5 thus storing the messages via JPA so the user could write their own logic to select a message from the DB and resend it. Or are you suggesting that seam be checking the email box for the from address to read and act upon the NDR messages sent by downstream MTAs possibly days after the original email was sent?
          Hide
          pmuir Pete Muir added a comment -

          I would like input from Nikolay who instigated this discussion, but basically, I think solving SEAMMAIL-5 and perhaps providing a built-in view controller should be sufficient.

          I don't think Seam (at least for now) should be doing stuff like reading email boxes etc.

          Show
          pmuir Pete Muir added a comment - I would like input from Nikolay who instigated this discussion, but basically, I think solving SEAMMAIL-5 and perhaps providing a built-in view controller should be sufficient. I don't think Seam (at least for now) should be doing stuff like reading email boxes etc.
          Hide
          clerum Cody Lerum added a comment -

          we are on the same page then.

          Show
          clerum Cody Lerum added a comment - we are on the same page then.
          Hide
          nikolay.elenkov Nikolay Elenkov added a comment -

          Not referring to bounces. Just failed connection to mail server (auth failed, server overloaded, etc.) . In any case, making it hard to find out what the error is not good.
          And I am not saying 'handle errors for my', I am saying 'let me see what the error is so that I can take appropriate action.

          Show
          nikolay.elenkov Nikolay Elenkov added a comment - Not referring to bounces. Just failed connection to mail server (auth failed, server overloaded, etc.) . In any case, making it hard to find out what the error is not good. And I am not saying 'handle errors for my', I am saying 'let me see what the error is so that I can take appropriate action.
          Hide
          nikolay.elenkov Nikolay Elenkov added a comment -

          Is it possible to edit comments?

          I don't expect Seam to handle all errors, or read mail boxes and resend. Just break the process into steps, and throw intuitive exceptions, so that developers can handle errors as appropriate.
          Right now you get a FacesException, and that's far from intuitive.

          Show
          nikolay.elenkov Nikolay Elenkov added a comment - Is it possible to edit comments? I don't expect Seam to handle all errors, or read mail boxes and resend. Just break the process into steps, and throw intuitive exceptions, so that developers can handle errors as appropriate. Right now you get a FacesException, and that's far from intuitive.

            People

            • Assignee:
              clerum Cody Lerum
              Reporter:
              pmuir Pete Muir
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development