mailbox
mailbox copied to clipboard
📨 簡易電子報發送系統,使用 #Golang 實作,send campaign mail with open, click tracker.
Mailbox

簡易電子報發送系統,使用 Golang 實作。建立發送 campaign 資訊、匯入訂閱者資訊(群組標記)、簡易發送系統、開信追蹤與連結點擊追蹤。
以 docker container 運行。
Cmd
mailbox campaign:建立campaign,包含產生該campaign的亂數種子。mailbox user:匯入訂閱者的資訊。mailbox send:發送電子報,以 HTML 格式發送。mailbox server:接收開信訊息。
相關的操作請參考 -h 的說明,或 cmd/docs
Build Docker Image
toomore/mailbox:base
將基本的程式碼放入,相關的套件也一併下載。
sh ./build-base.sh
toomore/mailbox:cmd
只將編譯過的 cmd 程式放入。
sh ./build-min.sh;
Required
- AWS SES
KEY,Token. - Update
./Makefile run_cmd,./dev-run-cmd.shfiles.mailbox_ses_key:AWS SES KEYmailbox_ses_token:AWS SES Tokenmailbox_ses_sender:發送者的email。如:Toomore Chiang <[email protected]>.mailbox_web_site:接收開信網址,不包含https與結尾。如:open.example.com.mailbox_ses_replyto: (選擇) 回信時的信箱。
- Nginx
Nginx config
需加入以下資訊到網域設定檔。
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Args $query_string;
proxy_set_header X-Uri $uri;
Run
Into container
make run_cmd
Support bash-completion
mailbox [tab][tab]
campaign send server user
... and pretty help (using spf13/cobra)
mailbox -h
Import User data from csv
匯入訂閱者資訊的 csv 檔案,檔案內需包含 email, groups, f_name, l_name 欄位。
mailbox user import ./list.csv
可以使用 -d 來預覽資料讀取狀況
mailbox user import ./list.csv -d
...
Template Replace
利用 mailbox send -p [HTML path] 時,可以在指定的 HTML 檔案中放入可被替換參數。
{{FNAME}}:訂閱者的first name{{LNAME}}:訂閱者的last name{{READER}}:放置開信追蹤連結。例:<img src="{{READER}}">{{WASHI}}...{{/WASHI}}:放置點擊後才替換的參數。例:{{WASHI}}http://example.com/?lname={{LNAME}}{{/WASHI}}