3.2 KiB
PMail
The current code is not stable, be sure to record the log! Lost letters or letters parsed wrong can find out the original content of the mail from the log!
中文文档
Introduction
An extremely lightweight mailbox server designed for personal use scenarios.
Features
-
Single file operation and easy deployment.
-
The binary file is only 15MB and takes up less than 10M of memory during the run.
-
Support dkim, spf checksum, Email Test score 10 points if correctly configured.
Disadvantages
-
At present, only the core function of sending and receiving emails has been completed. Basically, it can only be used by a single person, and does not deal with issues related to permission management in the process of multiple users.
-
The UI is ugly
How to run
1、Generate DKIM secret key
Generate public and private keys by the dkim-keygen tool of the go-msgauth project
Put the key in the config/dkim
directory.
2、Set DNS
Add the following records to your domain DNS settings
type | hostname | address / value |
---|---|---|
A | smtp | server ip |
MX | _ | smtp.YourDomain |
TXT | _ | v=spf1 a mx ~all |
TXT | default._domainkey | Your DKIM public key |
3、Domain SSL Key
Prepare the certificate of smtp.YourDomain
, the private key in ".key" format and the public key in ".crt" format
Put the certificate in the config/ssl
directory.
4、Build(or download)
1、installed nodejs
and yarn
2、installed golang
3、exec ./build.sh
5、Config
Modify the config.json
file in the config directory and fill in your secret key and domain information.
Tips:
MySQL database name must is pmail
, and charset must is utf8_general_ci
.
Configuration file description :
{
"domain": "demo.com", // Your domain
"dkimPrivateKeyPath": "config/dkim/dkim.priv", // dkim private key
"SSLPrivateKeyPath": "config/ssl/private.key", // ssl private key
"SSLPublicKeyPath": "config/ssl/public.crt", // ssl public key
"mysqlDSN": "username:password@tcp(127.0.0.1:3306)/pmail?parseTime=True&loc=Local", // mysql connect infonation
"weChatPushAppId": "", // WeChat public account appid (for new email message push) . If you don't need it, you can make it empty.
"weChatPushSecret": "", // WeChat api secret
"weChatPushTemplateId": "", // push template id
"weChatPushUserId": "" // wechat user id
}
6、Run
exec pmail
and check port of 25、80.
The webmail service address is http://yourip. Default account is admin
and password is admin
7、Email Test
Check if your mailbox has completed all the security configuration. It is recommended to use https://www.mail-tester.com/ for checking.
For Developer
Project Framework
1、 FE: vue3+element-plus
The code is in fe
folder.
2、Server: golang + mysql
The code is in server
folder.
Plugin Development
Reference this file. server/hooks/wechat_push/wechat_push.go
What's More
Welcome PR! Welcome Issues! The project need a Logo !