<!--
# SPDX-License-Identifier: LGPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 Glenn Y. Rolland <glenux@glenux.net>
# Copyright © 2023 Glenn Y. Rolland <glenux@glenux.net>
-->

[![Build Status](https://cicd.apps.glenux.net/api/badges/glenux/bulk-barrage/status.svg)](https://cicd.apps.glenux.net/glenux/bulk-barrage)

<img src="/glenux/bulk-barrage/raw/branch/master/_images/logo-simple.svg" height="256" />

# Bulk Barrage

Bulk Barrage is a command-line tool that enables users to report spam emails to
the SignalSpam platform <signal-spam.fr>.

This tool serves as a bridge between individual users and the SignalSpam
service, facilitating the process of submitting spam for official investigation
and action.

## Introduction

Bulk Barrage is a community-driven project developed independently from
SignalSpam. It offers a convenient way for users to report spam emails directly
from any email-piping capable mail client by leveraging the HTML forms on
SignalSpam's web platform. The project is currently in beta but is mature
enough for daily use.

## Requirements

To use the project:

* An account on SignalSpam.

To build the project from source:

* Make,
* CMake
* CrystalLang and Shards.

## Installation

To install Bulk Barrage, follow these steps:

1. Ensure that CrystalLang is installed on your system.
2. Clone the repository:

   ```bash
   git clone https://github.com/your-repo/bulk-barrage.git
   cd bulk-barrage
   ```

3. Use the Makefile to build the project:

   ```bash
   make build
   ```

## Usage

Bulk Barrage can be used in a few simple steps:

```bash
Usage: bulk-barrage [options] [command]

Commands:
  configure        Initialize the configuration
  report           Process and report spam email (default: from STDIN)

Options:
  -h, --help       Show this help
```

### Reporting spam from command-line

To report a spam email, you can use the `report` command:

```bash
cat spam_email.eml | bulk-barrage report
```

### Reporting spam from Mutt (or Neomutt)

Add the following code in your `~/.muttrc` configuration file.

```muttrc
macro index,pager \ez "<enter-command>set pipe_decode=no\n<pipe-entry>bulk-barrage report\n<enter-command>set pipe_decode=yes\n<delete-message>" "Report a spam using Bulk Barrage"
```

## Configuration

After installation, run `bulk-barrage configure` to set up your user
configuration, which may include credentials or preferences for interacting
with the SignalSpam platform.

## Issue Reporting

Issues can be reported on [Bulk Barrage's Issue Tracker](https://code.apps.glenux.net/glenux/bulk-barrage/issues).

## License

This project is licensed under the LGPL-3.0-or-later.

## Acknowledgments and thanks

* SignalSpam for their efforts in combating spam.
* The CrystalLang community for support and resources.

## Alternatives

For alternative solutions or more information on SignalSpam, you can refer to:

- [SignalSpam's Official Blog Post](https://signal.eu.org/blog/wp-content/uploads/2007/05/signalspam.txt)
- [Bortzmeyer's Guide on Reporting to Signal Spam](https://www.bortzmeyer.org/signaler-a-signal-spam.html)

