Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
cmd
 
 
 
 
 
 
sql
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Mailbox GitHub release Build Status Coverage Status license

簡易電子報發送系統,使用 Golang 實作。建立發送 campaign 資訊、匯入訂閱者資訊(群組標記)、簡易發送系統、開信追蹤與連結點擊追蹤。

以 docker container 運行。

Cmd

  1. mailbox campaign:建立 campaign,包含產生該 campaign 的亂數種子。
  2. mailbox user:匯入訂閱者的資訊。
  3. mailbox send:發送電子報,以 HTML 格式發送。
  4. mailbox server:接收開信訊息。

相關的操作請參考 -h 的說明,或 cmd/docs

Build Docker Image

toomore/mailbox:base

將基本的程式碼放入,相關的套件也一併下載。

sh ./build-base.sh

toomore/mailbox:cmd

只將編譯過的 cmd 程式放入。

sh ./build-min.sh;

Required

  1. AWS SES KEY, Token.
  2. Update ./Makefile run_cmd, ./dev-run-cmd.sh files.
    1. mailbox_ses_key:AWS SES KEY
    2. mailbox_ses_token:AWS SES Token
    3. mailbox_ses_sender:發送者的 email。如:Toomore Chiang <toomore0929@gmail.com>.
    4. mailbox_web_site:接收開信網址,不包含 https 與結尾。如:open.example.com.
    5. mailbox_ses_replyto: (選擇) 回信時的信箱。
  3. 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}}