Runs an HTTP server that serves a password reset form. It should be installed on the same server where Maddy is running.
It runs the maddy creds password -p
command to change a user's password.
- You are currently logged into your mailbox and want to reset the password.
- For example, you registered a user, and the user wants to change their password.
For the time being, you need to compile it yourself.
- Go
- Maddy (on the server, we need its CLI)
To build this project, install Go
and execute the following command:
go build ./main.go
Make sure to configure it first! The first compilation will take a moderate amount of time.
By default, the web server starts on :1323
. Make sure you hide it behind a reverse proxy.
You will probably need to edit the reset.gohtml
template to suit your needs.
For now, it contains a reset page in Russian for my hobby mail service.
The only way to change the configuration is to modify the constants in the main.go
file:
MaddyPath
– Path to Maddy's database, e.g.,/var/lib/maddy/credentials.db
HostingURL
– Your domain name, for example:http://localhost:1323/
SMTPMailUsername
– Your full email address, for example:[email protected]
SMTPMailPassword
– Your mailbox passwordSMTPMailHostname
– Your mail hostname, for example:mx1.local.host
MXServer
– Your mailMX
entry andPORT
, for example:mx1.local.host:587
EmailFrom
– The$FROM
section of an email template, for example:[email protected]
EmailSubject
– The$SUBJECT
section of an email templateEmailMessage
– The$MESSAGE
section of an email template. Remember to provide a password reset link for the user using$RESET_LINK
. For example:Here's your reset link: $RESET_LINK\r\n
EmailTemplate
– Your reset email messageHTTPServerPort
– HTTP server port
"To: $TO\r\n" +
"From: $FROM\r\n" +
"Content-Type: text/plain; charset=UTF-8\r\n" +
"Subject: $SUBJECT\r\n" +
"\r\n" +
"$MESSAGE\r\n"