Implement mua mode
- Dominant language
- Perl
- Stars
- 1.3k
- Forks
- 95
- PR merge metrics
- No merged PRs in 30d
Description
Split swaks functionality into mua mode and test mode. Swaks was designed as a test tool, but has a healthy set of uses as a straight MUA. Trying to serve two masters has lead to some compromises that are not ideal. For instance, swaks will not send AUTH unless the server advertises auth. This is correct behavior for an MUA, but hobbles an admin who wants to understand what their server does when AUTH is sent without being advertised. Conversely, we only ever try one server, which is appropriate for an admin testing specific servers, but deficient for a user who is just trying to send a mail (in which case we should try all MX records).
Items from my notes that might be related to this, or that this might be a blocker for:
- XCLIENT and XFORWARD have length limits but swaks doesn't try to enforce them (by breaking up the strings into multiple calls). Might be interesting to support them
- try more than one MX?
If delivering via MX, keep trying MX until one succeeds
Add new option for this, not default behavior
how behave if receive 4xx level error?
- Swaks should be able to break rules for testing
Subject: Force Authentication Attempt? :: Dave Page 1/16/18
--lax mode so that checks like "make sure auth is advertised before trying auth" can work?
- in mua mode, we would do MX lookups for every recipient instead of sending every recipient to the last user's MX
- in MUA mode, require DNS be operational, do not fall back to localhost
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names no files, tests, or entry points; start by reviewing the current swaks command behavior and its existing test-tool assumptions. Use the listed MUA concerns—MX retries, per-recipient lookups, authentication rules, and DNS fallback—to define the scope. Done requires an agreed and tested separation between MUA and test modes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- perl
- Domain
- cli, networking, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100