Organized
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
# Rebot Legacy Known-Spam Rules
|
||||
|
||||
**Source inspected:**
|
||||
|
||||
- `/home/jason/projects/rebot/rebot/RebotSlick.php`
|
||||
- `/home/jason/projects/rebot/rebot/RebotSlick.php.save`
|
||||
- `/home/jason/projects/rebot/rebot/RebotSlick.php.save.1`
|
||||
- `/home/jason/projects/rebot/rebot/Classify/Receipts.php`
|
||||
|
||||
## Summary
|
||||
|
||||
The old Rebot spam cleanup used `RebotSlick::CleanSpam()` which iterated open customer-service issues and called `KnownSpam($issue)`. When `KnownSpam()` returned true, Rebot updated the issue to Closed and set category `Spam`.
|
||||
|
||||
Current source behavior:
|
||||
|
||||
```php
|
||||
if ( $this->KnownSpam($issue)) {
|
||||
$this->client->issue->update($issue['id'], [
|
||||
"status_id" => $this->statusByName['Closed'],
|
||||
"category_id" => $this->categoriesByName['Spam']
|
||||
]);
|
||||
}
|
||||
```
|
||||
|
||||
The saved older copies also used `KnownSpam()` and closed tickets, sometimes with note `Rebot identified as spam`.
|
||||
|
||||
## Exact KnownSpam source logic
|
||||
|
||||
### Direct sender equality
|
||||
|
||||
```php
|
||||
if ($from_address == 'noreply@rush-delivery.com') return true;
|
||||
```
|
||||
|
||||
### Amazon package special case
|
||||
|
||||
```php
|
||||
if ($from_address == 'no-reply@amazon.com') {
|
||||
if (strpos($subject, "Your Amazon package") !== false) return true;
|
||||
}
|
||||
```
|
||||
|
||||
### Current `badEmails` regex list
|
||||
|
||||
```php
|
||||
"/^.*@indeedemail.com/i"
|
||||
"/^no-reply@indeed.com/i"
|
||||
"/^.*@.*roku.com/i"
|
||||
"/^no.reply@masterclass.com/i"
|
||||
"/^donotreply@walmart.com/i"
|
||||
"/^.*@uber.com/i"
|
||||
"/^no-reply@inhome.walmart.com/i"
|
||||
"/^.*wingsandrings.com/i"
|
||||
"/mailnull@amazon.com/i"
|
||||
"/^.*@tryfinally.co/i"
|
||||
"/^.*crackerbarrel.com/i"
|
||||
"/^.*shop.tiktok.com/i"
|
||||
"/^noreply_samsung@sea.samsung.com/i"
|
||||
"/^noreply@email.crunchbase.com/i"
|
||||
"/^reply@globalindustrial.com/i"
|
||||
"/^.*webstaurantstore.com/i"
|
||||
"/^info@emailbiz.dukeenergy.com/i"
|
||||
"/^support@helium10.com/i"
|
||||
"/^noreply@popmenu.com/i"
|
||||
"/^info@go.cbts.com/i"
|
||||
```
|
||||
|
||||
### Older saved `badEmails` list
|
||||
|
||||
The `.save` and `.save.1` variants had the earlier subset:
|
||||
|
||||
```php
|
||||
"/^.*@indeedemail.com/i"
|
||||
"/^no-reply@indeed.com/i"
|
||||
"/^.*@.*roku.com/i"
|
||||
"/^no.reply@masterclass.com/i"
|
||||
"/^donotreply@walmart.com/i"
|
||||
"/^.*@uber.com/i"
|
||||
"/^no-reply@inhome.walmart.com/i"
|
||||
"/^.*@wingsandrings.com/i"
|
||||
"/mailnull@amazon.com/i"
|
||||
"/^.*@tryfinally.co/i"
|
||||
"/^.*crackerbarrel.com/i"
|
||||
"/^.*shop.tiktok.com/i"
|
||||
```
|
||||
|
||||
The current source adds Samsung, Crunchbase, Global Industrial, Webstaurant Store, Duke Energy newsletters, Helium10, Popmenu, and CBTS.
|
||||
|
||||
### `badSubjects` regex list
|
||||
|
||||
```php
|
||||
"/Your Amazon.com order.*has shipped/i"
|
||||
"/^Your Duke energy statement is ready/i"
|
||||
"/^Your Amazon.com order.*/i"
|
||||
"/^UPS Billing: Payment Received.*/i"
|
||||
"/^UPS Billing:.*new invoice.*/i"
|
||||
"/^.applied on indeed.*/i"
|
||||
"/^See results for the assessments you sent to*/i"
|
||||
"/^Reminder: Leave feedback on your interview with.*/i"
|
||||
"/^Pekin AutoPay Payment.*/i"
|
||||
"/^Notification of Active Listings Report availability/i"
|
||||
```
|
||||
|
||||
## Important interpretation for modern tooling
|
||||
|
||||
The old Rebot called all of the above `spam`, but several of these are better understood today as **operational clutter** rather than promotional spam:
|
||||
|
||||
- Amazon order/shipping/package notifications
|
||||
- UPS billing/payment/invoice notices
|
||||
- Duke Energy statements/newsletters
|
||||
- Pekin AutoPay payments
|
||||
- Indeed applicant/assessment/interview mail
|
||||
- notification/report availability emails
|
||||
|
||||
For the new fast path, preserve the rules but do **not** treat every legacy rule as `spam-promotional`. Recommended split:
|
||||
|
||||
1. `legacy-rebot-known-spam-promotional`
|
||||
- promotional/vendor/newsletter/sales senders
|
||||
- safe for fast close if contact is not `Customer` / `maybe-customer`
|
||||
|
||||
2. `legacy-rebot-operational-clutter`
|
||||
- Amazon order/shipping, UPS billing, Duke/Pekin billing, Indeed workflow mail
|
||||
- can be fast-closed only if Jason explicitly approves closing operational clutter as a separate lane
|
||||
|
||||
3. `legacy-rebot-receipts-routing`
|
||||
- from `Classify/Receipts.php`; these were routed to Receipts / Accounting / IT, not generic spam close
|
||||
|
||||
## Receipts classifier reference
|
||||
|
||||
`rebot/Classify/Receipts.php` used `GenericMail` to classify:
|
||||
|
||||
### Email regexes
|
||||
|
||||
```php
|
||||
/culliganbillingoh@culliganwaterco.com/i
|
||||
/accounting@amshippingsupplies.com/i
|
||||
/bookkeeperasl@gmail.com/i
|
||||
/bounces-noreply@mandrillapp.com/i
|
||||
```
|
||||
|
||||
### Subject regexes
|
||||
|
||||
```php
|
||||
/You have a new bill from altafiber/i
|
||||
```
|
||||
|
||||
### Actions
|
||||
|
||||
- Default: status `Resolved`, category `Receipts`
|
||||
- AMShipping invoices: category `Bill Needs Paid`, assigned Accounting
|
||||
- JoeLevine/bookkeeper: category `Bill Needs Paid`, assigned Accounting
|
||||
- Mandrill bounces: status `Resolved`, category `IT Issue`, assigned Technical Services
|
||||
|
||||
These should not automatically enter the promotional spam fast-close registry, but they are useful future operational-clutter/routing profiles.
|
||||
Reference in New Issue
Block a user