mirror of
https://github.com/hugmouse/maddy-password-reset.git
synced 2025-04-18 12:40:25 +00:00
64 lines
2.2 KiB
Markdown
64 lines
2.2 KiB
Markdown

|
||
|
||
# Maddy Password Reset Service
|
||
|
||
Runs an HTTP server that serves a password reset form.
|
||
It should be installed on the same server where Maddy is running.
|
||
|
||
## How It Works
|
||
|
||
It runs the `maddy creds password -p` command to change a user's password.
|
||
|
||
### Use Cases
|
||
|
||
- 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.
|
||
|
||
## Installation
|
||
|
||
For the time being, you need to compile it yourself.
|
||
|
||
### Requirements
|
||
|
||
- Go
|
||
- Maddy (on the server, we need its CLI)
|
||
|
||
To build this project, install `Go` and execute the following command:
|
||
|
||
```shell
|
||
go build ./main.go
|
||
```
|
||
|
||
Make sure to configure it first! The first compilation will take a moderate amount of time.
|
||
|
||
## Configuration
|
||
|
||
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: `robot@local.host`
|
||
- `SMTPMailPassword` – Your mailbox password
|
||
- `SMTPMailHostname` – Your mail hostname, for example: `mx1.local.host`
|
||
- `MXServer` – Your mail `MX` entry and `PORT`, for example: `mx1.local.host:587`
|
||
- `EmailFrom` – The `$FROM` section of an email template, for example: `robot@local.host`
|
||
- `EmailSubject` – The `$SUBJECT` section of an email template
|
||
- `EmailMessage` – 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 message
|
||
- `HTTPServerPort` – HTTP server port
|
||
|
||
### `EmailTemplate` Example
|
||
|
||
```text
|
||
"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"
|
||
```
|