Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

high speed distributed mail delivery system

NotificationsYou must be signed in to change notification settings

hayrullahcansu/fastmta-core

Repository files navigation

bashtop

Description

Fastmta is high speed distributed mail delivery system. It developed to relay tons of email.

Features

  • Easy to Use: with inspired menu system.
  • Transactional MTA: No matter what happens, the messages you work with will be in a sensible state.
  • On-Premise Solution: Run software on hardware located you.
  • Cross-platform: Run anywhere linux, windows, darwin etc... with the minumum machine power.
  • High Performance: Provides high delivery performance via non-blocking io operations.
  • Distributed: It is horizontally scalable, fault-tolerant.
  • Independent Database: It works MSSQL, MySQL, PostgreSQL or SQLite.
  • Management UI: Configuration on the fly.
  • Full configurable IPs.
  • Multiple Inbound Channel: Smtp, Cli, RestAPI, Inject Queue and Database

Dependencies

GCC -> For Sqlite

RabbitMQ -> A queue tool for the messages.

Installation

Download Projectgo get -t github.com/hayrullahcansu/fastmta-core

Go to project folder. It should be$GOPATH\github.com\hayrullahcansu\fastmta-core

In Terminalgo run main.go

Configurability

All options changeable from within UI.

app.json

{"database": {"driver":"sqlite3","connection":"test.db"  },"ip_addressess": [    {"ip":"127.0.0.1","hostname":"vmta1.localhost","inbound":true,"outbound":true    }  ],"ports": [25,467,587],"rabbitmq": {"host":"rabbitmq-host","port":5672,"username":"username","password":"password","virtual_host":"","exchange_name":""  }}
Param NameVariable TypeRequirementDescriptionValue
driver:stringyes*SQL Providersqlite3,mysql,mssqlpostgresql
connection:stringyes*Topic pattern can be layoutDescribed below

Should set connection string with these formats.

sqlite    ->  "/tmp/database_file_name.db"mysql     ->  "user:password@(localhost)/dbname?charset=utf8&parseTime=True&loc=Localmssql     ->  "sqlserver://username:password@localhost:1433?database=dbnam"postgres  ->  "host=myhost port=myport user=gorm dbname=gorm password=mypassword"

TODO

  • TODO Transactions SQL
  • TODO Support Docker
  • TODO Go Module
  • TODO Test container
  • TODO Web UI
  • TODO AUTH PLAIN
  • TODO AUTH LOGIN
  • TODO AUTH CRAM-MD5ref: https://www.samlogic.net/articles/smtp-commands-reference-auth.htm
  • TODO Gzip or similar compressor support
  • TODO Support SQL providers
  • TODO Send signal to main process to killref: initializer.go
  • TODO Check if there was no MX record in DNS, so using A, we should fail and not retryref: bounce_handler.go
  • TODO report dkim errorref: inbound_staging_consumer.go
  • TODO Implementation bulk sender
  • TODO Save rule, Domain not foundref: normal_sender.go
  • TODO Implementation Smtp Authentication
  • TODO Implementation TLS inbound
  • TODO Implementation LOCALDELIVERYref: smtp_server.go
  • TODO Check validity dataref: smtp_server.go
  • TODO Define all error like dnsErrorref: agent.go
  • TODO Add a rule like "this host not valid or unable to connectref: agent.go
  • TODO Save domain to DBref: domain.go
  • TODO Save domain to DBref: domain.go

About

high speed distributed mail delivery system

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp