Skip to content

Client-facing signal for which SMTP transport actually sent a message #8798

Open

Description

@pbuzdin

The multi-transport series (#8619, #8705, #8703, #8709, #8797 merged; #8711, #8771
open; umbrella #8572) removes ConfiguredAddr and manual transport selection —
great cleanup, but it also removes the last way for a client to know which SMTP
transport a message actually went out on.

Today the SMTP loop knows the transport (e.g. #8797 resets transport_id there),
but nothing exposes it. What's left for clients:

Happy to help with the implementation.

Activity

  1. Hocuri commented on Oct 6, 2026

    @Hocuri
    Collaborator

    What exactly would you like to use this information for? Is it in order to expose the info to the user, or for debugging message sending problems you have?

    And, I guess you would like this for https://github.com/pbuzdin/velta?

  2. pbuzdin commented on Oct 6, 2026

    @pbuzdin
    Author

    Both, but mainly user-facing. Yes, it's for Velta.

    A read-only field is all I need: a transport id or address stored on the message at send time, readable through message info or the MsgDelivered event. No new UI requirements for core, and no behaviour change. If it's too niche for core, I'm also fine keeping it out of tree.

  3. Hocuri commented on Oct 13, 2026

    @Hocuri
    Collaborator

    Thinking about it, I don't think this warrants a new (in-tree) API, because we generally want to keep the API surface small (or at least, not bigger than it already is).

    But I agree that this info should go somewhere, either:

    • In the connectivity view, show which transport was last used for sending a message. This will already help for some debugging, but not all.
    • or in the debug info returned by get_message_info(). This is less easy for the user to find and understand, and it will require us to store more database state, but it may be more helpful for debugging.
  4. pbuzdin commented on Oct 14, 2026

    @pbuzdin
    Author

    Connectivity view is ok, and its what Velta already does.

    “last used for sending” line in get_connectivity_html (the addr or id the SMTP loop is bound to, updated on connect/failover, not only after successful send) lets us delete our local smtp-via patch. That is the marker on the relay line, so Velta users see which relay messages are going through after failover.

    get_message_info() debug text would not help. We would not parse it for UI, and we do not need per-message history for this.

    No new API is needed. If that is too much for in-tree, we keep the patch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions