elektromail 0.1.1

A minimal, Rust-based IMAP + SMTP mail server for local development and testing
Documentation
# Contributing to elektromail

Thank you for your interest in contributing to elektromail!

## How to Contribute

### Reporting Issues

- Check existing issues before creating a new one
- Include steps to reproduce the problem
- Provide relevant IMAP/SMTP protocol details if applicable

### Pull Requests

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/my-feature`)
3. Make your changes
4. Run tests: `cargo test`
5. Run clippy: `cargo clippy`
6. Format code: `cargo fmt`
7. Commit your changes
8. Push to your fork and create a pull request

### Git hooks (recommended)

To catch CI failures locally before pushing, enable the repository hooks:

```bash
git config core.hooksPath .githooks
```

The pre-push hook runs:

```bash
RUSTFLAGS="-D warnings" cargo check --tests --all-features
```

If you need to skip the hook temporarily:

```bash
SKIP_PRE_PUSH=1 git push
```

### Code Style

- Follow standard Rust conventions
- Run `cargo fmt` before committing
- Ensure `cargo clippy` passes without warnings
- Add tests for new functionality

### Testing

```bash
# Run all tests
cargo test

# Run RFC 9051 compliance tests
cargo test rfc9051

# Run with output
cargo test -- --nocapture
```

### RFC Compliance

When implementing new IMAP features, please reference RFC 9051 and add corresponding tests in `tests/rfc9051/`.

## License

By contributing, you agree that your contributions will be licensed under the European Union Public Licence v1.2 (EUPL-1.2).