trashmail
解決方案 - 通過Web UI
, JSON API
, RSS feed
和Webhook
接收電子郵件RSS feed
JSON API
將其集成到您自己的項目中。可用於自動化2FA電子郵件Webhook
TLS on connect
Plaintext
, STARTTLS
和tls端點 | 解釋 | 示例輸出 |
---|---|---|
/ rss/ [email-address] | RENDERS RSS XML用於RSS客戶端渲染電子郵件 | |
/api/raw/ [email-address]/[id] | 返回地址的原始電子郵件。警告:輸出可能與電子郵件本身一樣大,因此具有大型附件的郵件可能最高為20MB | |
/api/attachment [email-address]/[attachment-id] | 用正確的啞劇類型作為標頭返回附件 | |
/api/delete/ [email-address]/[id] | 刪除特定的電子郵件及其附件 | |
/api/deleteaccount/ [email-address] | 刪除此電子郵件帳戶的所有消息和附件 |
端點 | 解釋 | 示例輸出 |
---|---|---|
/ json/ [email-address] | 返回帶有指向附件的鏈接和電子郵件的基於文本的主體的一系列收到的電子郵件。如果輸入ADMIN 電子郵件,將返回所有帳戶的所有電子郵件 | |
/json/ [email-address]/[id] | 要查看接收電子郵件的所有數據,請從上一個電話中獲取ID,然後對此進行輪詢以獲取電子郵件的原始和HTML主體。可以很大,因為身體可以包含base64中的所有附件 | |
/json/listAccounts | 如果SHOW_ACCOUNT_LIST 在config.ini中設置為true,則此端點將返回所有電子郵件地址的數組 |
只需編輯config.ini
您就可以使用以下設置
URL
> GUI將託管的URL。沒有尾巴斜線!示例:https://trashmail.mydomain.euDOMAINS
- >逗號分開的域列表此郵件服務器將接收電子郵件。只是這樣的Web界面可以生成隨機地址MAILPORT
> Python驅動的SMTP服務器將聆聽的端口。 Default: 25
ADMIN
>電子郵件地址(不必存在,僅必須是有效的),該地址將列出服務器已收到的所有地址的所有電子郵件。有點全DATEFORMAT
>如何在Web界面上顯示時間戳(MOMM.JS語法)PASSWORD
- >如果配置,則不能在不通過表單提供的情況下提供站點和API,張貼/獲取變量password
或HTTP標頭PWD
(例如: curl -H "PWD: 123456" http://localhost:8080/json...
)ALLOWED_IPS
>逗號分隔的IPv4或IPv6 CIDR地址的列表,允許使用Web UI或APIATTACHMENTS_MAX_SIZE
>每個單獨的電子郵件的最大大小在字節中MAILPORT_TLS
>如果設置為高於0的東西,則將用於TLSC(連接上的TLS)。這意味著不可能宣傳授權。通常設置為465
。需要TLS_CERTIFICATE
和TLS_PRIVATE_KEY
工作TLS_CERTIFICATE
>證書(鏈)的路徑。可以相對於 /python目錄或絕對TLS_PRIVATE_KEY
>通往證書的私鑰的路徑。可以相對於 /python目錄或絕對WEBHOOK_URL
>如果設置,將以電子郵件的JSON數據為正文將發布請求發送到此URL。可用於將Opentrashmail集成到您自己的項目中ADMIN_ENABLED
>啟用管理菜單。默認false
ADMIN_PASSWORD
>如果設置,需要此密碼才能訪問管理菜單在Docker中,您可以使用以下環境變量:
env var | 它做什麼 | 示例值 |
---|---|---|
URL | Web界面的URL。由API和RSS提要使用 | http:// localhost:8080 |
diss_unknown | 告訴MailServer到未刪除未配置的域的電子郵件 | 是的,錯誤 |
域 | 服務器將收聽的白名單域。如果將DiSt_Unknown設置為false,則僅用於在Webinterface中生成隨機電子郵件 | |
SHOW_ACCOUNT_LIST | 如果設置為true ,則所有先前已收到電子郵件的帳戶均可通過API或Webinterface列出 | 是的,錯誤 |
行政 | 如果設置為有效的電子郵件地址,並且此地址已在API或Webinterface中輸入,則將顯示所有帳戶的所有電子郵件。全力以赴 | [email protected] |
dateformat | 將基於MOMM.JS語法在Web界面中的收到的日期格式化日期 | “嗯,yyyy,h:mm:ss a” |
skip_filepermissions | 如果設置為true ,則無法修復容器中代碼數據文件夾的文件權限。對本地開發人員有用。默認false | 是的,錯誤 |
密碼 | 如果配置,則不能在不通過表單提供的情況下使用網站和API,發布/獲取可變password 或HTTP標頭PWD | yousrstrongpassword |
允許的_ips | 逗號分隔的IPv4或IPv6 CIDR地址的列表允許使用Web UI或API | 192.168.5.0/24,2a02:ab:cd:ef::/60,172.16.0.0/16 |
attactments_max_size | 每個電子郵件的每個單獨附件的最大大小 | 2000000 = 2MB |
mailport_tls | 如果設置為高於0的東西,則此端口將用於TLSC(連接上的TLS)。這意味著不可能宣傳授權。通常設置為465 。需要TLS_CERTIFICATE 和TLS_PRIVATE_KEY 工作 | 465 |
tls_certificate | 通往證書的路徑(鏈)。可以相對於 /python目錄或絕對 | /certs/cert.pem 或cert.pem 如果在Python目錄內 |
tls_private_key | 通往證書的私鑰的路徑。可以相對於 /python目錄或絕對 | /certs/privkey.pem 或key.pem 是否在Python目錄內 |
webhook_url | 如果設置,則將以電子郵件為正文的JSON數據將POST請求發送到此URL。可用於將Opentrashmail集成到您自己的項目中 | https://example.com/webhook |
Admin_Enabled | 啟用管理菜單。默認false | false / true |
Admin_password | 如果設置,需要此密碼才能訪問管理菜單 | 123456 |
由於V1.3.0 TLS和StartTL由OpentRashmail支持。
請注意,有兩種將TLS與電子郵件一起使用的方法
startTLS不需要特定端口,因為它以明文的形式開始,然後如果服務器宣傳“ starttls”命令(如果配置了證書和密鑰設置),則升級到TLS。由於它是在默認MAILPORT
上運行的,因此您無需打開其他端口才能工作。
Connect上的TLS將TL包裹在裸露的端口周圍,因此不可能以明文對其進行交談,因此它需要其他端口才能工作。通常為此使用端口465。
對於TLS,您首先需要與SMTP服務器的主機名相對應的證書。這可以使用Lets'cocrypt完成,甚至可以使用通配符證書。
對於測試環境,您可以通過從Python文件夾內運行以下命令來創建證書:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj ' /CN=localhost '
然後,您需要設置MAILPORT_TLS
的設置(如果您只想支持startTLS,則不需要), TLS_CERTIFICATE
和TLS_PRIVATE_KEY
。
/docs /dev.md文件包含有關如何調試和測試TLS和TLSC連接的一些提示。它使用該工具swaks
,在每個軟件包管理器中都應該可以避免。
在您的DNS面板中,為您的域創建了一個指向託管OpentRashmail服務器的IP的MX記錄。
以下示例將使您可以將電子郵件發送到example.com
mail.example.com. IN A 93.184.216.34
example.com. 14400 IN MX 10 mail.example.com.
這個高級示例將允許您使用通配符域:
mail.example.com. IN A 93.184.216.34
*.example.com. 14400 IN MX 10 mail.example.com.
結合配置選項“域”(例如Docker參數-e DOMAINS="*.example.com"
)將允許您使用example.com的任何子域的任何地址(eg [email protected], john@lynn. example.com等
簡單起步沒有持久性
docker run -it -p 25:25 -p 80:80 -e URL= " https://localhost:80 " hascheksolutions/opentrashmail:1
在主機機器上保存數據目錄
docker run -p 80:80 -p 25:25 -e URL= " https://localhost:80 " -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail:1
完整的示例示例為守護程序,持久性,一個用於自動發電的域,僅接受配置域的電子郵件,清理90天以上的郵件以及自動重新啟動
docker run -d --restart=unless-stopped --name opentrashmail -e " DOMAINS=mydomain.eu " -e " DATEFORMAT='D.M.YYYY HH:mm' " -e " DISCARD_UNKNOWN=false " -e " DELETE_OLDER_THAN_DAYS=90 " -p 80:80 -p 25:25 -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail:1
Open Trashmail的核心是一款由Python供電的SMTP服務器,它會在傳入的電子郵件上聽,並將其存儲為JSON文件。服務器不必知道正確的電子郵件域,它將捕獲其收到的所有內容。您只需要將端口25公開到網絡上,並將指向機器IP地址的域的MX記錄設置。