RainLoop已多年未更新,SnappyMail 是 RainLoop 的分支,由社區維護。SnappyMail 不僅修復了漏洞,還增加了更多功能和優化。對 IMAP 支持更好,移動端體驗也比 RainLoop 更細致。
安裝過程和設置跟RainLoop一樣:
以寶塔面板為例:
1、網站-->php項目-->添加站點-->配置對話框中[數據庫]選擇[不創建],PHP版本 ≥ 7.4
2、瀏覽器打開剛剛創建的網站看看是否可以訪問,確定可以訪問后,刪除網站目錄下的.htaccess 404.html index.html
3、將下載的安裝包上傳至網站目錄內并解壓
4、網站設置中添加
location / {try_files $uri $uri/ /index.php?$query_string;}
5、嘗試訪問,如果提示302報錯:
[302] The following PHP extensions are not available in your PHP configuration!
fileinfo
解決方案:寶塔面板-->軟件商店-->php 7.4 -->設置-->安裝擴展-->fileinfo-->安裝
6、訪問時如果提示Invalid Content-Type / pcntl_signal()被禁用的錯誤。
Warning: pcntl_signal() has been disabled for security reasons in /www/wwwroot/mail.yourdomain.com/snappymail/v/2.38.2/app/libraries/MailSo/Log/Logger.php on line 78 提示:An error occurred.
Please refresh the page and try again.
Error: Invalid Content-Type 'text/html; charset=UTF-8' for url '/?/AppData/0/xxxxxxxxxxx
在寶塔環境中pcntl_signal()
函數常被禁用(出于安全考慮)
解決:寶塔 > 軟件商店 > ?PHP 7.4 → 設置 → 禁用函數 → 刪除其中的[pcntl_signal]
7、登錄后臺?http://mail.xxxx.com/?admin?,user:admin, pwd: 在/www/wwwroot/mail.xxxx.com/data/_data_/_default_/admin_password.txt中復制,?TOTP不填寫
8、 如果郵箱服務和SnappyMail是部署在同一臺服務器上,可以不用配置域名。因為域名配置中已默認有 hlvps 和 * 兩項是針對本地郵箱服務的。當然如果端口/協議等還是要看一下是否跟本地服務器的的配置是否一致。
9、設置發件人允許多重身份(即自由填寫發件人,比如我想隨意切換發件人為 jack@...、 system@...、 sales@...、support@...):
以下是rainloop:
注:郵箱服務器相關設置/策略中若“允許發信時[FROM] 與[登錄的郵箱地址]不一致”,會存在【偽造其他發件人】的風險。
例如用戶登錄 SMTP 認證為 alice@yourdomain.com ,用ceo@yourdomain.com 發信,那么這封郵件會成功發出去,收件人也會看到“來自 ceo@yourdomain.com”。
這在Postfix默認設置中是允許的,要修改這個設置的話,發件限制中添加 smtpd_sender_restrictions?= reject_sender_login_mismatch (拒絕發件人與登錄身份不一致的郵件)
類似的選項通常用這項名字:
不同軟件,設置選項不同,選項名稱通常類似如下:
Sender login mismatch allowed?允許發件人郵箱與登錄賬戶不匹配
"From address" (customizable) 是否允許自定義發件人郵箱地址
"Allow custom sender address" 是否允許與登錄身份不同的 From
"Use login as sender" 強制使用登錄身份作為發件人(與上相對)
"Restrict sender identity" 是否限制發件人與登錄用戶一致
"Sender identity enforcement" 是否啟用發件人身份強校驗
“Arbitrary sender address”
“Unrestricted sender address”
“Forged sender address allowed”
“Envelope-sender freedom”
“Sender address spoofing (allowed)”之類....
[arbitrary sender address] 常見的一個使用場景,一個人使用的郵箱服務,使用catch-all來收取全部郵件,然后使用Add another Identity來回復。https://serverfault.com/questions/619102/rainloop-arbitrary-sender-address