Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-361

DSNBounce often report the dsn Status 5.5.0 incorrectly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.2.0
    • 2.3.0
    • None

    Description

      DSNBounce should guess the DSN code from the SMTP/ESMTP code received during the SMTP session. Other MTA does this. Converted to hames DSNStatus:

      // Req mail action not taken: mailbox unavailable
      case 450: return DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.MAILBOX_OTHER);
      // Req action aborted: local error in processing
      case 451: return DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.SYSTEM_OTHER);
      // Req action not taken: insufficient sys storage
      case 452: return DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.SYSTEM_FULL);
      // Syntax error, command unrecognized
      case 500: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_SYNTAX);
      // Syntax error in parameters or arguments
      case 501: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG);
      // Command not implemented
      case 502: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_CMD);
      // Bad sequence of commands
      case 503: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_CMD);
      // Command parameter not implemented
      case 504: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_INVALID_ARG);
      // Req mail action not taken: mailbox unavailable
      case 550: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.MAILBOX_OTHER);
      // User not local; please try <...>
      case 551: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.ADDRESS_MOVED);
      // Req mail action aborted: exceeded storage alloc
      case 552: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.MAILBOX_FULL);
      // Req action not taken: mailbox name not allowed
      case 553: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.ADDRESS_OTHER);
      // Transaction failed
      case 554: return DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.UNDEFINED_STATUS);

      I already patched my DSNBounce but I made also many other changes/fix to this class and I don't know if someone (committer) is reading bug submissions.
      Please contact me for an updated DSNBounce when you will be ready to apply patches.

      Attachments

        Activity

          People

            bago Stefano Bagnara
            bago Stefano Bagnara
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: