Sign inSign up

cooge123/http2smtp

By cooge123

β€’Updated 12 months ago

Supports Web UI management and scheduled tasks,send mail over http

Image
Developer tools
1

1.0K

cooge123/http2smtp repository overview

GitHub Downloads Docker Pulls License GitHub last commit GitHub Actions Workflow Status GitHub top language

⭐️ If it helps you, please give a star.

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

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/http2smtp

⁠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]'

⁠UI Display

⁠initialize
WebChat
⁠add SMTP
WebChat
⁠add email address
WebChat
⁠add TOEKN
WebChat
⁠add schedule
WebChat

Tag summary

Content type

Image

Digest

sha256:8ed2a682a…

Size

39.1 MB

Last updated

12 months ago

docker pull cooge123/http2smtp