{"id":15288997,"url":"https://github.com/gleez/smtpd","last_synced_at":"2025-10-07T03:30:55.903Z","repository":{"id":21251334,"uuid":"24566846","full_name":"gleez/smtpd","owner":"gleez","description":"A Lightweight High Performance ESMTP email server","archived":true,"fork":false,"pushed_at":"2018-08-24T20:07:00.000Z","size":264,"stargazers_count":197,"open_issues_count":4,"forks_count":47,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-03T10:29:11.669Z","etag":null,"topics":["c10k","esmtp","esmtp-server","golang","high-performance","http","lightweight","mongodb","nginx","proxy","smtp","smtp-server","smtpd"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gleez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-28T18:22:28.000Z","updated_at":"2024-09-25T13:41:21.000Z","dependencies_parsed_at":"2022-08-26T13:23:11.480Z","dependency_job_id":null,"html_url":"https://github.com/gleez/smtpd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gleez/smtpd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleez%2Fsmtpd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleez%2Fsmtpd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleez%2Fsmtpd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleez%2Fsmtpd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gleez","download_url":"https://codeload.github.com/gleez/smtpd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gleez%2Fsmtpd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278715508,"owners_count":26033296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c10k","esmtp","esmtp-server","golang","high-performance","http","lightweight","mongodb","nginx","proxy","smtp","smtp-server","smtpd"],"created_at":"2024-09-30T15:55:32.332Z","updated_at":"2025-10-07T03:30:55.496Z","avatar_url":"https://github.com/gleez.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"smtpd\n=========================================================\n\nA Lightweight High Performance SMTP written in Go, made for receiving \nlarge volumes of mail, parse and store in mongodb. The purpose of this daemon is \nto grab the email, save it to the database and disconnect as quickly as possible.\n\nThis server does not attempt to check for spam or do any sender \nverification. These steps should be performed by other programs.\nThe server does NOT send any email including bounces. This should\nbe performed by a separate program.\n\nThe most alluring aspect of Go are the Goroutines! It makes concurrent programming\neasy, clean and fun! Go programs can also take advantage of all your machine's multiple \ncores without much effort that you would otherwise need with forking or managing your\nevent loop callbacks, etc. Golang solves the C10K problem in a very interesting way\n http://en.wikipedia.org/wiki/C10k_problem\n\nOnce compiled, Smtpd does not have an external dependencies (HTTP, SMTP are all built in).\n\nFeatures\n=========================================================\n\n* ESMTP server implementing RFC5321\n* Support for SMTP AUTH (RFC4954) and PIPELINING (RFC2920)\n* Multipart MIME support\n* UTF8 support for subject and message\n* Web interface to view messages (plain text, HTML or source)\n* Html sanitizer for html mail in web interface\n* Real-time updates using websocket\n* Download individual attachments\n* MongoDB storage for message persistence\n* Lightweight and portable\n* No installation required\n\nDevelopment Status\n=========================================================\n\nSMTPD is currently production quality: it is being used for real work.\n\n\nTODO\n=========================================================\n\n* POP3\n* Rest API\n* Inline resources in Web interface\n* Per user/domain mailbox in web interface\n\n\nBuilding from Source\n=========================================================\n\nYou will need a functioning [Go installation][Golang] for this to work.\n\nGrab the Smtpd source code and compile the daemon:\n\n    go get -v github.com/gleez/smtpd\n\nEdit etc/smtpd.conf and tailor to your environment.  It should work on most\nUnix and OS X machines as is.  Launch the daemon:\n\n    $GOPATH/bin/smtpd -config=$GOPATH/src/github.com/gleez/smtpd/etc/smtpd.conf\n\nBy default the SMTP server will be listening on localhost port 25000 and\nthe web interface will be available at [localhost:10025](http://localhost:10025/).\n\nThis will place smtpd in the background and continue running\n\n\t/usr/bin/nohup /home/gleez/smtpd -config=/home/gleez/smtpd.conf -logfile=smtpd.log 2\u003e\u00261 \u0026\n\nYou may also put another process to watch your smtpd process and re-start it\nif something goes wrong.\n\n\nUsing Nginx as a proxy\n=========================================================\nNginx can be used to proxy SMTP traffic for GoGuerrilla SMTPd\n\nWhy proxy SMTP?\n\n *\tTerminate TLS connections: At present, only a partial implementation \nof TLS is provided. OpenSSL on the other hand, used in Nginx, has a complete \nimplementation of SSL v2/v3 and TLS protocols.\n *\tCould be used for load balancing and authentication in the future.\n\n 1.\tCompile nginx with --with-mail --with-mail_ssl_module\n 2.\tConfiguration:\n\n```\nmail {\n\t#This is the URL to Smtpd's http service which tells Nginx where to proxy the traffic to\n\tauth_http 127.0.0.1:10025/auth-smtp;\n\t\t\t\t\t\n\tserver {\n\t\tlisten  15.29.8.163:25;\n\t\tprotocol     smtp;\n\t\tserver_name  smtp.example.com;\n\n\t\tsmtp_auth none;\n\t\ttimeout 30000;\n\t\tsmtp_capabilities \"PIPELINING\" \"8BITMIME\" \"SIZE 20480000\";\n\n\t\t# ssl default off. Leave off if starttls is on\n\t\t#ssl                   on;\n\t\tssl_certificate        /etc/ssl/certs/ssl-cert-snakeoil.pem;\n\t\tssl_certificate_key    /etc/ssl/private/ssl-cert-snakeoil.key;\n\t\tssl_session_timeout    5m;\n\n\t\tssl_protocols               SSLv2 SSLv3 TLSv1;\n\t\tssl_ciphers                 HIGH:!aNULL:!MD5;\n\t\tssl_prefer_server_ciphers   on;\n\n\t\t# TLS off unless client issues STARTTLS command\n\t\tstarttls      on;\n\t\tproxy         on;\n\t\txclient       on;\n\t}\n}\n```\n\nCredits\n=========================================================\n* https://github.com/flashmob/go-guerrilla\n* https://github.com/jhillyerd/inbucket\n* https://github.com/ian-kent/Go-MailHog\n* https://github.com/briankassouf/incus\n* https://github.com/microcosm-cc/bluemonday\n* http://gorillatoolkit.org\n\nLicence\n=========================================================\n\nCopyright ©‎ 2014, Gleez Technologies (http://www.gleeztech.com).\n\nReleased under MIT license, see [LICENSE](license) for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgleez%2Fsmtpd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgleez%2Fsmtpd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgleez%2Fsmtpd/lists"}