cmc-sales/go-app/cmd/vault/README.md

57 lines
1.7 KiB
Markdown
Raw Normal View History

2025-07-30 02:54:10 -07:00
# Vault Email Processor
This is a Go rewrite of the PHP vault.php script that processes emails for the CMC Sales system.
## Key Changes from PHP Version
1. **No ripmime dependency**: Uses the enmime Go library for MIME parsing instead of external ripmime binary
2. **Better error handling**: Proper error handling and database transactions
3. **Type safety**: Strongly typed Go structures
4. **Modern email parsing**: Uses enmime for robust email parsing
## Features
- Processes emails from vault directory
- Parses email headers and extracts recipients
- Identifies and creates users as needed
- Extracts attachments and email body parts
- Matches document identifiers in subjects (enquiries, invoices, POs, jobs)
- Saves emails with all associations to database
- Moves processed emails to processed directory
## Usage
```bash
go run cmd/vault/main.go \
--emaildir=/var/www/emails \
--vaultdir=/var/www/vaultmsgs/new \
--processeddir=/var/www/vaultmsgs/cur \
--dbhost=127.0.0.1 \
--dbuser=cmc \
--dbpass="xVRQI&cA?7AU=hqJ!%au" \
--dbname=cmc
```
## Build
```bash
go build -o vault cmd/vault/main.go
```
## Dependencies
- github.com/jhillyerd/enmime - MIME email parsing
- github.com/google/uuid - UUID generation for unique filenames
- github.com/go-sql-driver/mysql - MySQL driver
## Database Tables Used
- emails - Main email records
- email_recipients - To/CC recipients
- email_attachments - File attachments
- emails_enquiries - Email to enquiry associations
- emails_invoices - Email to invoice associations
- emails_purchase_orders - Email to PO associations
- emails_jobs - Email to job associations
- users - System users
- enquiries, invoices, purchase_orders, jobs - For identifier matching