# M365 Spam Manager

> M365 Spam Manager (Microsoft Graph)

- Skill: `javimosch/m365-spam-manager` (Agent Skill)
- Install (CLI): `npx skillmds@latest add javimosch/m365-spam-manager`
- Raw SKILL.md: https://api.skillmd.com/api/skills/javimosch/m365-spam-manager/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: javimosch (https://skillmd.com/u/javimosch)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/javimosch/m365-spam-manager

---


# M365 Spam Manager (Microsoft Graph)

## Installation

Requires Node.js + npm install in the skill folder:
```bash
cd skills/m365-spam-manager
npm install
```

## Setup

Uses the same profile/credentials as `m365-mailbox`. Ensure you have a profile configured:
```bash
node skills/m365-mailbox/scripts/setup.mjs --profile tom-business ...
```

## Usage

### Review mode (default) — user must approve each action

```bash
# Analyze junk folder and show suspicious scores (review mode - default)
node skills/m365-spam-manager/scripts/analyze.mjs --profile tom-business-mail --mailbox radman@e-ola.com

# Move a false positive to inbox (requires confirmation)
node skills/m365-spam-manager/scripts/move-to-inbox.mjs --profile tom-business-mail --mailbox radman@e-ola.com --id <MSG_ID>

# Move confirmed spam to learning folder
node skills/m365-spam-manager/scripts/move-to-learning.mjs --profile tom-business-mail --mailbox radman@e-ola.com --id <MSG_ID>
```

### Automatic mode (no confirmation)

```bash
# Auto-clean: move high-confidence spam to learning, medium to review
node skills/m365-spam-manager/scripts/auto-clean.mjs --profile tom-business-mail --mailbox radman@e-ola.com --threshold 80
```

## Suspicious Score Calculation

The analyzer calculates a score (0-100) based on:

| Pattern | Points | Description |
|---------|--------|-------------|
| No unsubscribe link | +20 | Legitimate marketing must have one |
| Suspicious sender domain | +15 | Free email, misspellings, random strings |
| All caps subject | +10 | Spam often shouts |
| Excessive punctuation | +10 | !!!, ???, $$$ |
| Suspicious keywords | +15 | crypto, win, free, urgent, verify, bank, password, ... |
| Mismatched language | +10 | Subject in DE, body EN or vice versa |
| Known scam patterns | +25 | "Attention - suspected SPAM", fake invoices |
| Free email provider | +10 | gmail, yahoo, hotmail in From (not Reply-To) |
| No DKIM/SPF indication | +5 | Graph doesn't show auth results |

### Score thresholds

- **0-30**: Low suspicion — likely legitimate
- **31-70**: Medium — review recommended
- **71-100**: High — almost certainly spam

## Policy

This skill respects the same policy as `m365-mailbox`:
- `read`: autonomous (analyze, list)
- `move`: controlled (move to inbox/learning folder)

In review mode, the script always prompts for confirmation before moving emails.

