邮件系统:https://mail.scwy.net 我的邮箱 ease@scwy.net 。
它建立在pve的虚拟服务器上,使用Maddy。暂时还没有开启注册,还缺少在线修改密码功能。
暂时使用留言的方式申请邮箱,但不对可靠性作保证。
Maddy是Golang编写的邮件系统。
WebMail使用RainLoop,整个界面还是比较清爽的。
Maddy网站
Maddy下载
Maddy Github
RainLoop下载
(Maddy下载的文件有点怪,不常用,解压方式:tar -I zstd -xvf archive.tar.zst)
Maddy安装还是比较简单,我是Ubuntu环境,下载即用,并没有让它使用服务方式。配置文件稍微改一改,把服务器上的mail.scwy.net的证书取回来。maddy run即可。sqlite3小巧绿色,万个左右的用户也应不在话下。
运行:sudo ./maddy –debug –config ./maddy.conf run
创建邮箱帐号:maddy creds create postmaster@example.org
创建存储帐号:maddy imap-acct create postmaster@example.org
存储数据目录:/var/lib/maddy
存储配置文件:/etc/maddy/maddy.conf
查看邮箱帐号:maddy creds list
查看存储帐号:maddy imap-acct list
账户下分类:maddy imap-mboxes list username@example.com
查看收件箱:maddy imap-msgs list username@example.com INBOX/Sent/Trash/
修改密码:/maddy creds password –password PASSWORD username@example.com
查看邮箱内容: ./maddy imap-msgs dump username@example.com INBOX
IMAP 端口为 993
SMTP 端口为 465
在服务器上映射端口,例如:lcx -tran 993 192.168.8.141 993
数据位置/var/lib/maddy/,帐号信息在credentials.db表(sqlite3)中。可修改此表,添加密码找回的问题、手机号等。imapsql.db保存邮件相关信息。
为了使用RainLoop这个WebMail系统,需要安装php支持环境,比如Apach2。
sudo apt-get install apache2 php libapache2-mod-php php-curl php-xml
把RainLoop复制到了默认路径,处理一些权限问题。
cd /var/www/html/rainloop
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chown -R www-data:www-data .
配置目录:/etc/php/8.1/apache2/php.ini
网站配置: /etc/apache2/sites-enabled/000-default.conf
启动Apach: sudo /etc/init.d/apache2 start
rainloop配置文件:data/data/default/configs/application.ini
需要修改RainLoop的模块(php已经很久没用过了,还是比较头痛。),它的前端代码在/var/www/html/rainloop/v/1.17.0/app/templates/Views/User中。修改后需要手动删除Apach的缓存,rm /var/www/html/data/data/default/cache/?? -rf
安全起见,在/etc/apache2/apache2.conf中设置data目录不可见
<Directory /var/www/html/data/>
AllowOverride None
Order deny,allow
Deny from all
</Directory>
参考使用:https://www.tecmint.com/install-rainloop-webmail-in-arch-linux/ https://lwebapp.com/zh/post/rainloop-webmail
计划任务:
- 注册功能
- 找回功能
- 修改密码功能
- 垃圾邮件处理
注册与找回功能,需在配置 /data/data/default/configs/application.ini 中添加指定地址,即可在界面上显示链接。
forgot_password_link_url = "/forgot.html"
registration_link_url = "/reg.html"