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], [email protected]等
简单起步没有持久性
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记录设置。