Sign inSign up

cooge123/smtp2http

By cooge123

•Updated about 1 year ago

Supports Web UI management and scheduled tasks

Image
Developer tools
1

798

cooge123/smtp2http repository overview

For more information, please visit https://github.com/chuccp/smtp2http⁠.

you can enter the management interface by opening a browser to http://127.0.0.1:12566.

docker run -p 12566:12566 -p 12567:12567 -it --rm cooge123/smtp2http

⁠Important Updates

Added scheduled task functionality, which allows using cron expressions to periodically read results from an API or link and send emails. Supports configuring templates for JSON response APIs to convert JSON data into text for email content.

⁠Project Description

A gateway service that converts SMTP protocol to HTTP interfaces, helping developers:

  • Avoid hardcoding SMTP configurations in code
  • Dynamically send emails through REST API
  • Visually configure multiple SMTP providers
  • Use scheduled tasks to reduce email configuration in projects

⁠Main Features

  • 🚀 Configure SMTP servers and recipient emails via Web UI
  • 📦 Support for GET/POST/JSON request formats
  • 🔒 Token-based API access control
  • 📎 Multi-file attachment support (Base64 encoding/form upload)
  • 🐳 Ready-to-use Docker image
  • 📊 Send record query and statistics
  • 📅 Scheduled task support for requesting links and sending emails
  • 📧 Email template support

⁠Community

Welcome to join WeChat group or Telegram for more suggestions.

WeChat group:

WebChat

Telegram:

https://t.me/+JClG9_DojaM0ZGE1⁠

[core]
init      = true   ## Initialization switch, becomes true after initial configuration
cachePath = .cache  ## Email attachment cache directory
dbType    = sqlite  ## Database type, supports sqlite and mysql

[sqlite]
filename = d-mail.db  ## Database path

[manage]
port     = 12566      ## Management port
username = 111111     ## Management username
password = 111111     ## Management password
webPath  = web        ## Management page path

[api]
port = 12567          ## API port

[mysql]
host     = 127.0.0.1   ## Database address
port     = 3306         ## Database port
dbname   = d_mail      ## Database name
charset  = utf8        ## Database character set
username = root        ## Database username
password = 123456      ## Database password

⁠API Documentation

⁠Send Email API

POST /sendMail

Parameters:

ParameterTypeRequiredDescription
tokenstringYesAuthorization token
subjectstringNoEmail subject
contentstringYesEmail content
recipients[]stringNoAdditional recipient list
files[]FileNoAttachment file list

Successful Response:

ok
⁠Complete Request Examples

JSON Format (with attachments)

curl -X POST 'http://127.0.0.1:12567/sendMail' \
--header 'Content-Type: application/json' \
--data-raw '{
  "token": "{{token}}",
  "subject": "test",
  "content": "this is a test",
  "recipients": ["[email protected]"],
  "files": [
    {
      "name": "alert.log",
      "data": "{{base64_content}}"
    }
  ]
}'

Form Submission (with multiple attachments)

curl -X POST 'http://127.0.0.1:12567/sendMail' \
--form 'token={{token}}' \
--form 'subject=test' \
--form 'content=this is a test' \
--form '[email protected],[email protected]' \
--form 'files=@"/data/reports/sales.pdf"' \
--form 'files=@"/data/reports/expenses.xlsx"'

GET Request Example

curl 'http://127.0.0.1:12567/sendMail?token={{token}}&subject=test&content=this%20is%20a%20test&[email protected],[email protected]'

Tag summary

Content type

Image

Digest

sha256:12e2346b6…

Size

31.2 MB

Last updated

about 1 year ago

docker pull cooge123/smtp2http