Sitelet https://github.com/msgwing/ZeroSMTP/pull/252
Skip to content

docs: add Synology OAuth compatibility - #252

Merged
msgwing merged 4 commits into
msgwing:mainfrom
Mohitingale13:docs/add-synology-oauth
Aug 23, 2026
Merged

msgwing merged 4 commits into
msgwing:mainfrom
Mohitingale13:docs/add-synology-oauth

Conversation

@Mohitingale13

Copy link
Copy Markdown
Contributor

What does this PR change?

Adds Synology NAS notification email support to the device compatibility dataset.

Research & Evidence

Synology DSM 7 documents Outlook as an email notification service using an interactive Sign In flow rather than manually configured SMTP credentials.

Synology support documentation also indicates that the Outlook notification integration uses OAuth authentication, with behavior depending on the DSM version.

Primary evidence:
https://kb.synology.com/en-us/DSM/help/DSM/AdminCenter/system_notification_email?version=7

Implementation

  • Added Synology with status: "check-advisory".
  • Left models empty because compatibility is tied to DSM/version and configuration rather than a simple NAS model list.
  • Avoided making a broader claim than Synology's documentation supports.
  • Preserved the required trailing LF in data/devices.json.
  • Regenerated the documentation and ran the repository validation.

@github-actions github-actions Bot added the docs label Aug 23, 2026
@msgwing
msgwing merged commit 6bad093 into msgwing:main Aug 23, 2026
24 checks passed
@msgwing

msgwing commented Aug 23, 2026

Copy link
Copy Markdown
Owner

All three merged — Sharp, Toshiba and Synology. With HP and Lexmark earlier
that is five vendors from you in two days, and the compatibility list has
gone from 15 entries to 20.

Two things you did that are worth naming, because they are the difference
between a row that can be cited and one that cannot:

Every entry has a first-party source. Sharp's own manual, Toshiba Tec's
own notice, Synology's DSM 7 documentation. Not a forum, not a reseller blog.
That is the only rule this file cannot bend on, and you have not needed to be
told it once.

You used check-advisory where the vendor was conditional. Toshiba and
Synology are not clean "supported" answers and you did not round them up.
An optimistic row costs somebody a day before they find out.

Three of them conflicted on data/devices.json because the file moved under
you while you were working — my changes, not yours. I resolved and pushed to
your branches rather than asking you to rebase three times.

If you want more, the open ones are Epson (#210, claimed by @iharshlalakiya)
and then genuinely uncharted ground: device panel codes. What a printer
actually displays when SMTP auth fails — Kyocera shows 1102, which looks like
a hardware fault and is not one. We have documented exactly one, and a
technician searching that code finds nothing that connects it to a mail server.
Same rule: a vendor page, or say you could not find one.

@Mohitingale13

Copy link
Copy Markdown
Contributor Author

Thanks for the detailed feedback — I really appreciate it.

I’ve enjoyed contributing to the compatibility work, but I’m also looking to get more involved on the engineering side of the project. If there are any open coding issues, bugs, tests, tooling improvements, or small backend/frontend tasks where an outside contributor could help, I’d be happy to take one on.

I’d especially appreciate a chance to contribute beyond the device-data work if there’s something suitable for a first coding contribution to ZeroSMTP.
@msgwing

@msgwing

msgwing commented Aug 25, 2026

Copy link
Copy Markdown
Owner

@Mohitingale13 — this sat for two days and it should not have. Sorry.

Yes, and there is real work rather than something invented to have an answer:
#293 — a test suite for zerosmtp-check.

The package has no tests at all. scripts in its package.json is empty, and
CI runs three smoke checks written inline in the workflow: --help, a bad
hostname, and --json. Those prove the program starts. They prove nothing
about whether it answers correctly.

The part worth testing is pure, so no network and no SMTP server are needed:
errors.js exports the error table and the per-vendor panel codes, and
--explain matches pasted text against them.

There is a specific reason this matters here. That matching logic broke silently
once already: a \b in the panel-code regular expression became a literal
backspace character. The code still looked right in the editor and in the diff,
nothing threw, and the lookup simply stopped finding anything. One test over
one known panel code would have failed immediately.

The issue names what to cover and what "done" looks like, including the part I
care about most: deliberately break the regex and confirm the test fails. A
guard nobody has watched fail is not a guard.

Node 22 is what CI uses, so node:test is available and no new dependency is
needed.

On the five compatibility entries you already landed — Lexmark, HP, Sharp,
Toshiba, Synology — those are not filler. They are five vendors an administrator
can now check before December instead of finding out when scan-to-email stops.
The device table went from 15 rows to 20 largely because of you.

Take #293 if it appeals. If you would rather something else, say what kind of
work interests you and I will find the honest version of it rather than inventing
a task.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants