Email Spam Tester

GitHub Actions

Fail the build when your email stops passing

Sends your real template through the relay production uses, waits for the checks, and fails the job when authentication fails or the score drops under your threshold.

42 checks · No key · No account

Nobody watches DNS.
This job does, every night.

Add the workflow

Keep the relay login in repository secrets. Point it at the production relay with an account that can only send.

on:  schedule:    - cron: "17 6 * * *"  push:    paths: ["templates/**"] jobs:  spam-test:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: serg-tanichev/email-spam-tester-action@v1        with:          smtp-host: ${{ secrets.SMTP_HOST }}          smtp-port: 587          smtp-username: ${{ secrets.SMTP_USERNAME }}          smtp-password: ${{ secrets.SMTP_PASSWORD }}          from: "Acme Billing <billing@example.com>"          subject: Your invoice          html-file: templates/invoice.html          min-score: 80

Questions

Does it need a key?

No key and no account.

Why not a staging relay?

It usually signs with another key and sends from another IP, so the checks would describe the wrong setup.

What if my code builds the email?

Use reserve-only: the action reserves an address, your code sends to it, and a second step checks the result.

What makes the job fail?

A failed SPF, DKIM or DMARC check, or a score under min-score.

Send one real email and read what came back

Open in the Marketplace