点击关注我的Telegram群组和微信公众号

MENU

使用forsaken-mail搭建临时邮箱

2019 年 02 月 17 日 • 阅读: 6036 • 技术,分享,教程

forsaken-mail 是一个开源的支持自定义前缀(用户名)的临时邮箱程序
参考文章:如有乐享

相关链接

源码:https://github.com/denghongcai/forsaken-mail
DEMO: https://get.3min.email/

配置

程序安装

Linux:

  • #安装git
  • yum install git -y
  • #安装nvm
  • curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
  • export NVM_DIR="$HOME/.nvm"
  • [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
  • #安装nodejs和 npm
  • nvm install 6.10.0
  • #查看nodejs版本是否正确,显示 6.10.0
  • node -v
  • #下载项目源码
  • git clone https://github.com/malaohu/forsaken-mail.git
  • cd forsaken-mail
  • #安装项目需要的库
  • npm install
  • #安装pm2工具
  • npm install -g pm2
  • #禁用postfix和sendmail
  • killall sendmail
  • /etc/init.d/postfix stop
  • chkconfig --level 2345 postfix off
  • chkconfig --level 2345 sendmail off
  • #启动项目
  • pm2 start bin/www
  • #设置开机启动
  • pm2 startup
  • pm2 save

Docker:

  • docker build -t denghongcai/forsaken-mail .
  • docker run --name forsaken-mail -d -p 25:25 -p 3000:3000 denghongcai/forsaken-mail
域名解析

以域名 3min.email 为例

主机记录记录类型记录值 MX 优先级
mxAServer IP-
@AServer IP-
@MXmx.3min.email10

以域名 get.3min.email 为例

主机记录记录类型记录值 MX 优先级
mx.getAServer IP-
getAServer IP-
getMXmx.get.3min.email10
Nginx 反代

需要修改的地方:

  1. SSL 证书配置(ssl_certificate, ssl_certificate_key)
  2. 解析域名(server_name)
  3. 反代域名(proxy_pass)

    • server {
    • listen 80;
    • listen 443 ssl http2;
    • ssl_certificate /usr/local/nginx/conf/ssl/certificate.crt;
    • ssl_certificate_key /usr/local/nginx/conf/ssl/certificate.key;
    • ssl_protocols TLSv1.2 TLSv1.3;
    • ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    • ssl_prefer_server_ciphers on;
    • ssl_session_timeout 10m;
    • ssl_session_cache builtin:1000 shared:SSL:10m;
    • ssl_buffer_size 1400;
    • add_header Strict-Transport-Security max-age=15768000;
    • ssl_stapling on;
    • ssl_stapling_verify on;
    • server_name get.3min.email;
    • if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
    • location / {
    • proxy_pass http://get.3min.email:3000;
    • proxy_http_version 1.1;
    • proxy_cache_bypass $http_upgrade;
    • proxy_set_header Upgrade $http_upgrade;
    • proxy_set_header Connection "upgrade";
    • proxy_set_header Host $host;
    • proxy_set_header X-Real-IP $remote_addr;
    • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    • proxy_set_header X-Forwarded-Proto $scheme;
    • proxy_set_header X-Forwarded-Host $host;
    • proxy_set_header X-Forwarded-Port $server_port;
    • }
    • }
    使用

    程序的逻辑是使用的什么域名访问到的即是什么域名域名的邮箱(通过修改本地 hosts 或者直接 IP 访问到程序右上角的随机邮箱地址也会随之改变但无法使用,能否收到邮件取决于 MX 解析是否设置并生效)。如果不使用 Nginx 反代,则访问域名:3000 端口即可比如 get.3min.email:3000,如果使用了 Nginx 则可以直接使用域名的 80/443 端口或者其它自定义端口。使用 Nginx 反代后可以考虑使用 iptables 限制仅限主机访问默认的 3000 端口。

注意事项

  1. 由于支持完全无限制的前缀自定义,需要考虑公开访问情况下被注册 admin@domain 的情况,所以最好不要使用根域名。
  2. Web 界面处于程序 /public 目录下
  3. 程序占用 CPU 较高
最后编辑于: 2021 年 03 月 30 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码
添加新评论

  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • (。•ˇ‸ˇ•。)
  • 妖梦
  • 泡泡
  • 阿鲁
  • 颜文字

已有 2 条评论
  1. tokenbcp tokenbcp

    相比来说这个更加完善一点youmu smile2 github.com/rev1si0n/another-tmp-mailbox