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!
An extremely lightweight mailbox server designed for personal use scenarios.
-
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.
-
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
Generate public and private keys by the dkim-keygen tool of the go-msgauth project
Put the key in the config/dkim
directory.
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 |
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.
1、installed nodejs
and yarn
2、installed golang
3、exec ./build.sh
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
}
exec pmail
and check port of 25、80.
The webmail service address is http://yourip. Default account is admin
and password is admin
Check if your mailbox has completed all the security configuration. It is recommended to use https://www.mail-tester.com/ for checking.
1、 FE: vue3+element-plus
The code is in fe
folder.
2、Server: golang + mysql
The code is in server
folder.
Reference this file. server/hooks/wechat_push/wechat_push.go
Welcome PR! Welcome Issues! The project need a Logo !