cypht icon indicating copy to clipboard operation
cypht copied to clipboard

Show server support (or not) for required or desired standards, extensions and features (diagnostics)

Open marclaporte opened this issue 5 years ago • 1 comments

Cypht is designed to work with standard SMTP/IMAP servers, and JMAP: https://github.com/jasonmunro/cypht/issues/180

And one day, we'll likely add support for Microsoft Exchange: https://github.com/jasonmunro/cypht/issues/247

And perhaps we'll even add more options to send email: https://dev.tiki.org/Transaction-Email-Sending-API

Furthermore, we should be in a position to take advantage of evolving standards: "This document updates RFC 3501 (IMAP4rev1) with persistent identifiers on mailboxes and messages to allow clients to more efficiently reuse cached data when resources have changed location on the server." Source: https://tools.ietf.org/html/rfc8474

With all these options, there could be some features that work differently depending on server support. Thus, we should add sections which report on features/standards supported by the servers.

As an example, in Tiki Wiki CMS Groupware, we have: "tiki-check.php is a standalone script for server environment settings diagnostics before installing Tiki, or for an existing Tiki installation. While it was designed for Tiki, and it's bundled in Tiki, it is very useful for any PHP app, as it checks over 100 different things and provides contextual feedback. Started in 2012, this script has been refined over the years and it copes with all kinds of weird edge cases." Source: https://doc.tiki.org/Server-Check

Jason wrote: "If the move extension is not supported, we fall back to copy/delete/expunge. I'm surprised this hasn't come up before. We want to take advantage of any extensions present, but we don't want to rely on them for basic functionality." Source: https://github.com/jasonmunro/cypht/issues/158#issuecomment-266117404

I hope we can leverage some existing Open Source code.

Thanks!

marclaporte avatar Jun 25 '20 00:06 marclaporte

An example of why we should do this: https://github.com/jasonmunro/cypht/issues/516

marclaporte avatar Jul 31 '22 19:07 marclaporte