57 lines
1.7 KiB
Markdown
57 lines
1.7 KiB
Markdown
|
|
# 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
|