https://github.com/feather-framework/feather-mail-ephemeral
In-memory mail client for Feather Mail, designed for tests and local development.
https://github.com/feather-framework/feather-mail-ephemeral
Last synced: 4 months ago
JSON representation
In-memory mail client for Feather Mail, designed for tests and local development.
- Host: GitHub
- URL: https://github.com/feather-framework/feather-mail-ephemeral
- Owner: feather-framework
- License: mit
- Created: 2023-11-18T20:39:42.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-19T07:52:29.000Z (4 months ago)
- Last Synced: 2026-02-19T13:40:50.903Z (4 months ago)
- Language: Swift
- Homepage:
- Size: 24.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Feather Mail Ephemeral
Ephemeral (in-memory) mail client for Feather Mail, designed for tests and local development.
It mirrors the behavior of real mail transports (SMTP, SES) without performing any network operations.
[

](
https://github.com/feather-framework/feather-mail-ephemeral/releases/tag/1.0.0-beta.2
)
## Features
- Ephemeral mailbox with insertion-order storage
- Validates mail before storage
- Supports plain text, HTML, and attachments
- No network dependencies
## Requirements


- Swift 6.1+
- Platforms:
- Linux
- macOS 15+
- iOS 18+
- tvOS 18+
- watchOS 11+
- visionOS 2+
## Installation
Use Swift Package Manager; add the dependency to your `Package.swift` file:
```swift
.package(url: "https://github.com/feather-framework/feather-mail-ephemeral", exact: from: "1.0.0-beta.2"),
```
Then add `FeatherMailEphemeral` to your target dependencies:
```swift
.product(name: "FeatherMailEphemeral", package: "feather-mail-ephemeral"),
```
## Usage
[

](
https://feather-framework.github.io/feather-mail-ephemeral/
)
API documentation is available at the following link.
> [!WARNING]
> This repository is a work in progress, things can break until it reaches v1.0.0.
### Example
```swift
let client = MailClientEphemeral()
let mail = Mail(
from: .init("from@example.com"),
to: [.init("to@example.com")],
subject: "Hello",
body: .plainText("Body")
)
try await client.send(mail)
let mailbox = await client.getMailbox()
```
## Related repositories
- [Feather Mail](https://github.com/feather-framework/feather-mail)
- [Feather Mail SMTP](https://github.com/feather-framework/feather-mail-smtp)
- [Feather Mail SES](https://github.com/feather-framework/feather-mail-ses)
## Development
- Build: `swift build`
- Test:
- local: `make test`
- using Docker: `make docker-test`
- Format: `make format`
- Check: `make check`
## Contributing
[Pull requests](https://github.com/feather-framework/feather-mail-ephemeral/pulls) are welcome. Please keep changes focused and include tests for new logic.