Simple SMTP to to webhook, for internal use.
It sends the content of an incoming email to a webhook.
SMTP protocol is implemented without TLS/SSL/Authentication. Only for internal use. Do not publicly expose it.
# send with POST, as json
WEBHOOK_URL=<your webhook> \
./mvnw spring-boot:run
# send with GET and query params
WEBHOOK_URL=<your webhook> \
WEBHOOK_METHOD=GET \
./mvnw spring-boot:run
# force a content type
WEBHOOK_URL=<your webhook> \
WEBHOOK_METHOD=POST \
WEBHOOK_CONTENT_TYPE=text/plain \
./mvnw spring-boot:run
By default, the smtp listens on port 2525.
To change the listening port set the SMTP_PORT
environment variable, e.g.
WEBHOOK_URL=<your webhook> \
SMTP_PORT=25 \
./mvnw spring-boot:run
When WEBHOOK_METHOD
is POST
(default value), the webhook receives a json payload, in post, like the one below.
The content type is set to the value of WEBHOOK_CONTENT_TYPE
(default application/json
).
{
"recipient": "[email protected]",
"from": "[email protected]",
"content": "this is the email body\r\non two lines",
"subject": "this is the subject"
}
When WEBHOOK_METHOD
is GET
, the webhook is invoked with the following URL
<your webhook>[email protected]&[email protected]&content=the-content&subject=the-subject"
docker run --rm -d \
-e WEBHOOK_URL=<your webhook> \
-p 25:2525 \
paolodenti/smtp2webhook:latest