#smtp-server #mail-server #服务器 #smtp #资源

应用程序 samotop-server

注重隐私的SMTP服务器

9个版本 (5个稳定版)

1.2.2 2022年1月30日
1.2.0 2021年8月4日
1.1.0 2021年2月6日
1.0.1 2020年8月24日
1.0.1-snapshot2020年8月13日

#289 in 电子邮件

每月37次下载

MIT/ApacheGPL-3.0-or-later

60KB
334

Build Status

samotop-server 1.2.2-dev

您可以运行自己的注重隐私且资源高效的邮件服务器。提供方便的Samotop Docker镜像

状态

通用

  • 小巧的Docker镜像 - 只包含静态编译的samotop和openssl,没有操作系统杂项。

通用(MDA/MTA/MSA)

  • 服务器将接收邮件并将其写入指定的maildir文件夹。另一个程序可以提取文件夹并进一步处理。
  • 如果提供了证书和身份文件,可以配置STARTTLS。

邮件投递代理(MDA)

  • 静止加密
  • 账户
  • LMTP
  • 套接字

邮件传输代理(MTA)

  • 邮件中继
  • 反垃圾邮件功能
    • SPF - 拒绝SPF检查失败的邮件
    • 灰名单

邮件提交代理(MSA)

  • 身份验证

安装

  • 使用cargo
    cargo install samotop-server
    
  • 使用docker
    docker pull brightopen/samotop
    

使用

  • 本地运行 samotop-server --help 以获取命令行参考。
  • 在docker中,运行 docker run --rm -ti samotop

两者应该产生与这个不太不同的使用信息

samotop 1.2.0

USAGE:
    samotop-server [FLAGS] [OPTIONS] --cert-file <cert file path> --identity-file <identity file path>

FLAGS:
    -h, --help       Prints help information
        --no-tls     Disable TLS suport
    -V, --version    Prints version information

OPTIONS:
    -n, --name <SMTP service name>              Use the given name in SMTP greetings, or if absent, use hostname
    -b, --base-dir <base dir path>              What is the base dir for other relative paths? [default: .]
    -c, --cert-file <cert file path>            Use this cert file for TLS. Disabled with --no-tls. If a relative path
                                                is given, it will be relative to base-dir
        --banner_delay <delay>                  Should we enforce prudent banner deleay? Delay is in miliseconds
    -i, --identity-file <identity file path>    Use this identity file for TLS. Disabled with --no-tls. If a relative
                                                path is given, it will be relative to base-dir
    -m, --mail-dir <mail dir path>              Where to store incoming mail? If a relative path is given, it will be
                                                relative to base-dir [default: inmail]
    -p, --port <port>...                        SMTP server address:port, such as 127.0.0.1:25 or localhost:12345. The
                                                option can be set multiple times and the server will start on all given
                                                ports. If no ports are given, the default is to start on localhost:25
        --command_timeout <timeout>             Should we enforce prudent command timeout? Timeout is in miliseconds

TLS

您也可以在docker中使用这些openssl命令。这将运行一个openssl,当前文件夹挂载到/data下,这也是工作目录

docker run --rm -ti -v "$PWD:/data/" -w "/data/" --entrypoint openssl samotop help

使用openssl生成证书和ID

openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out Samotop.crt -keyout Samotop.key

测试STARTTLS

openssl s_client -connect localhost:25 -starttls smtp

使用STARTTLS进行调试

openssl s_client -connect localhost:25 -debug -starttls smtp

TLS的其他有用提示

对于native-tls,您会转换为pfx

openssl pkcs12 -export -out Samotop.pfx -inkey Samotop.key -in Samotop.crt

从证书中提取公钥

openssl x509 -pubkey -noout -in Samotop.crt  > Samotop.pem

许可证

MIT OR Apache-2.0

贡献

除非您明确声明,否则您提交给samotop项目的任何贡献,根据Apache-2.0许可证定义,将按照上述方式许可,不附加任何额外条款或条件。

依赖关系

~23–39MB
~693K SLoC