How do email clients "send later" without storing a password?
Sparks stores your account credentials on their systems. This is also described in their privacy policy:
- INFORMATION WE COLLECT AND HOW WE USE THIS INFORMATION
Auth login or mail server credentials: Spark requires your credentials to log into your mail system in order to receive, search, compose and send email messages and other communication. Without such access, our Product won’t be able to provide you with the necessary communication experience. In order for you to take full advantage of additional App and Service features, such as “send later”, “sync between devices” and where allowed by Apple – “push notifications” we use Spark Services. Without using these services, none of the features mentioned above will function.
Any online service that acts on your behalf with other network services will normally need to store the credentials needed for those other services. While there are other ways to implement authenticate between services, such as OAuth2, in practice very few services implement such mechanisms. So when an online application needs to perform on your behalf, it mimics a client application like a web browser or mail client.
For example, personal finance applications (e.g. Mint) often provide a way to view all your financial accounts (bank accounts, credit cards, brokerages, mortgages, etc.) in one place. They require you to enter the username and password (and maybe even security questions) for each of those services, so that they can login and download the information.