{"id":13523129,"url":"https://github.com/Jinnrry/PMail","last_synced_at":"2025-04-01T00:30:58.425Z","repository":{"id":184754134,"uuid":"672419171","full_name":"Jinnrry/PMail","owner":"Jinnrry","description":"Private EMail Server","archived":false,"fork":false,"pushed_at":"2024-04-13T01:49:59.000Z","size":2184,"stargazers_count":1132,"open_issues_count":9,"forks_count":100,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-04-13T13:11:06.555Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jinnrry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-07-30T02:47:48.000Z","updated_at":"2024-07-20T03:20:38.002Z","dependencies_parsed_at":"2024-02-18T04:21:18.425Z","dependency_job_id":"ea88b248-ac70-4c5b-8111-5b0675f06e52","html_url":"https://github.com/Jinnrry/PMail","commit_stats":null,"previous_names":["jinnrry/pmail"],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jinnrry%2FPMail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jinnrry%2FPMail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jinnrry%2FPMail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jinnrry%2FPMail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jinnrry","download_url":"https://codeload.github.com/Jinnrry/PMail/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222688173,"owners_count":17023297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:00:55.855Z","updated_at":"2025-04-01T00:30:58.419Z","avatar_url":"https://github.com/Jinnrry.png","language":"Go","funding_links":[],"categories":["Go","Email"],"sub_categories":[],"readme":"# PMail\n\n\u003e A server, a domain, a line of code, a minute, and you'll be able to build a domain mailbox of your own.\n\n## [中文文档](./README_CN.md)\n\nI'm Chinese, and I'm not good at English, so I apologise for my translation.\n\n## Introduction\n\nPMail is a personal email server that pursues a minimal deployment process and extreme resource consumption. It runs on\na single file and contains complete send/receive mail service and web-side mail management functions. Just a server , a\ndomain name , a line of code , a minute of deployment time , you will be able to build a domain name mailbox of your\nown .\n\nAll kinds of PR are welcome, whether you are fixing bugs, adding features, or optimizing translations. Also, call for a\nbeautiful and cute Logo for this project!\n\n\u003cimg src=\"./docs/en.gif\" alt=\"Editor\" width=\"800px\"\u003e\n\n## Features\n\n* Single file operation and easy deployment.\n* The binary file is only 15MB and takes up less than 10M of memory during the run.\n* Support dkim, spf checksum, [Email Test](https://www.mail-tester.com/) score 10 points if correctly configured.\n* Implementing the ACME protocol, the program will automatically obtain and update Let's Encrypt certificates.\n\n\u003e By default, a ssl certificate is generated for the web service, allowing pages to use the https protocol.\n\u003e If you have your own gateway or don't need https, set `httpsEnabled` to `2` in the configuration file so that the web\n\u003e service will not use https.\n\u003e (Note: Even if you don't need https, please make sure the path to the ssl certificate file is correct, although the web\n\u003e service doesn't use the certificate anymore, the smtp protocol still needs the certificate)\n\n* Support pop3, smtp protocol, you can use any mail client you like.\n* Support multi-domain, multi-user and complete support for sending and receiving e-mail.\n\n\n# How to run\n\n## 0、Check You IP / Domain\n\nFirst go to [spamhaus](https://check.spamhaus.org/) and check your domain name and server IP for blocking records\n\n## 1、Download\n\n* [Click Here](https://github.com/Jinnrry/PMail/releases) Download a program file that matches you.\n* Or use Docker `docker pull ghcr.io/jinnrry/pmail:latest`\n\n## 2、Run\n\n`./pmail -p 80`\n\n\u003e -p Set the http port of the bootstrap setup interface, the default is port 80, note that this parameter only affects the bootstrap setup phase, if you need to change the port after setup is complete, please modify the configuration file.\n\n\u003e [!IMPORTANT]\n\u003e The SSL certificate will not be set automatically if the bootstrap setup phase uses a port other than 80.\n\nOr\n\n`docker run -p 25:25 -p 80:80 -p 443:443 -p 110:110 -p 465:465 -p 995:995 -p 993:993 -v $(pwd)/config:/work/config ghcr.io/jinnrry/pmail:latest`\n\n\u003e [!IMPORTANT]\n\u003e If your server has a firewall turned on, you need to open ports 25, 80, 110, 443, 465, 993, 995\n\n## 3、Configuration\n\nOpen `http://127.0.0.1` in your browser or use your server's public IP to visit, then follow the instructions to\nconfigure.\n\n## 4、Email Test\n\nCheck if your mailbox has completed all the security configuration. It is recommended to\nuse [https://www.mail-tester.com/](https://www.mail-tester.com/) for checking.\n\n\n# Configuration file format description\n\n```jsonc\n{\n  \"logLevel\": \"info\", //log output level\n  \"domain\": \"domain.com\", // Your domain\n  \"webDomain\": \"mail.domain.com\", // web domain\n  \"dkimPrivateKeyPath\": \"config/dkim/dkim.priv\", // dkim key path\n  \"sslType\": \"0\", // ssl certificate update mode, 0 automatic, 1 manual\n  \"SSLPrivateKeyPath\": \"config/ssl/private.key\", // ssl certificate path\n  \"SSLPublicKeyPath\": \"config/ssl/public.crt\", // ssl certificate path\n  \"dbDSN\": \"./config/pmail.db\", // database connect DSN\n  \"dbType\": \"sqlite\", //database type ，`sqlite` or `mysql`\n  \"httpsEnabled\": 0, // enabled https , 0:enabled 1:enablde 2:disenabled\n  \"httpPort\": 80, // http port . default 80\n  \"httpsPort\": 443, // https port . default 443\n  \"spamFilterLevel\": 0,// Spam filter level, 0: no filter, 1: filtering when `spf` and `dkim` don't pass, 2: filtering when `spf` don't pass\n  \"isInit\": true // If false, it will enter the bootstrap process.\n}\n```\n\n# Mail Client Configuration\n\nPOP3 Server Address : pop.[Your Domain]\n\nPOP3 Port: 110/995(SSL)\n\nSMTP Server Address : smtp.[Your Domain]\n\nSMTP Port: 25/465(SSL)\n\nIMAP Server Address : imap.[Your Domain]\n\nIMAP Port: 993(SSL)\n# Plugin\n\n[WeChat Push](server/hooks/wechat_push/README.md)\n\n[Telegram Push](server/hooks/telegram_push/README.md)\n\n[Web Push](server/hooks/web_push/README.md)\n\n## Plugin Install\n\u003e [!IMPORTANT]\n\u003e Plugins run on your server as independent processes, please review the security of third-party plugins on your own.PMail currently only maintains the three plugins mentioned above.\n\nCopy plugin binary file to `/plugins`\n\n# For Developer\n\n## Project Framework\n\n1、 FE： vue3+element-plus\n\nThe code is in `fe` folder.\n\n2、Server： golang + MySQL/SQLite\n\nThe code is in `server` folder.\n\n3、How to build\n\n`make build`\n\n4、Unit test\n\n`make test`\n\n## Api Documentation\n\n[go to wiki](https://github.com/Jinnrry/PMail/wiki/%E5%90%8E%E7%AB%AF%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3)\n\n## Plugin Development\n\n[go to wiki](https://github.com/Jinnrry/PMail/wiki/%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E8%AF%B4%E6%98%8E)\n\n# Thanks\n\nThanks to [Jetbrains](http://jetbrains.com/) for donating licenses to the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJinnrry%2FPMail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJinnrry%2FPMail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJinnrry%2FPMail/lists"}