簡易電子報發送系統,使用 Golang 實作。建立發送 campaign
資訊、匯入訂閱者資訊(群組標記)、簡易發送系統、開信追蹤與連結點擊追蹤。
以 docker container 運行。
mailbox campaign
:建立campaign
,包含產生該campaign
的亂數種子。mailbox user
:匯入訂閱者的資訊。mailbox send
:發送電子報,以 HTML 格式發送。mailbox server
:接收開信訊息。
相關的操作請參考 -h
的說明,或 cmd/docs
將基本的程式碼放入,相關的套件也一併下載。
sh ./build-base.sh
只將編譯過的 cmd
程式放入。
sh ./build-min.sh;
- AWS SES
KEY
,Token
. - Update
./Makefile run_cmd
,./dev-run-cmd.sh
files.mailbox_ses_key
:AWS SES KEYmailbox_ses_token
:AWS SES Tokenmailbox_ses_sender
:發送者的email
。如:Toomore Chiang <toomore0929@gmail.com>
.mailbox_web_site
:接收開信網址,不包含https
與結尾。如:open.example.com
.mailbox_ses_replyto
: (選擇) 回信時的信箱。
- Nginx
需加入以下資訊到網域設定檔。
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;
Into container
make run_cmd
Support bash-completion
mailbox [tab][tab]
campaign send server user
... and pretty help (using spf13/cobra)
mailbox -h
匯入訂閱者資訊的 csv 檔案,檔案內需包含 email
, groups
, f_name
, l_name
欄位。
mailbox user import ./list.csv
可以使用 -d
來預覽資料讀取狀況
mailbox user import ./list.csv -d
...
利用 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}}