{"id":37173396,"url":"https://github.com/redsift/smtpd","last_synced_at":"2026-01-14T20:16:04.978Z","repository":{"id":57643123,"uuid":"76558209","full_name":"redsift/smtpd","owner":"redsift","description":"A Go package to handle the server side of SMTP, with a sample simple SMTP server","archived":false,"fork":true,"pushed_at":"2024-03-13T15:33:23.000Z","size":295,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-06-20T16:35:44.480Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"siebenmann/smtpd","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redsift.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-15T12:34:12.000Z","updated_at":"2018-12-14T23:13:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/redsift/smtpd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/redsift/smtpd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Fsmtpd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Fsmtpd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Fsmtpd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Fsmtpd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redsift","download_url":"https://codeload.github.com/redsift/smtpd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redsift%2Fsmtpd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-14T20:16:04.270Z","updated_at":"2026-01-14T20:16:04.966Z","avatar_url":"https://github.com/redsift.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Smtpd is a Go package for handling the server side of the SMTP protocol.\nIt does not handle high level details like what addresses should be\naccepted or what should happen with email once it has been fully received;\nthose decisions are instead delegated to whatever is driving smtpd.\nSmtpd's purpose is simply to handle the grunt work of a reasonably\nRFC compliant SMTP server, taking care of things like proper command\nsequencing, TLS, and basic correctness of some things.\n\n(The standard library net/smtp package handles only the client side\nof SMTP; it makes no attempt to provide the facilities you'd need to\nwrite a server.)\n\nsmtpd sort of comes with a 'sinkhole' SMTP server that simply takes in\nemail (perhaps) and doesn't do anything with it beyond perhaps writing\nit to disk. This is obviously not suitable for production usage but\nit does make a potentially useful sink for spammers (which is what the\nauthor uses it for). This once was cmd/sinksmtp.go, but has become so\nlarge and complicated that it has moved out to its own repository,\nhttps://github.com/siebenmann/sinksmtp.\n\nBecause of its origin as the core engine of a sinkhole SMTP server,\nsmtpd is pretty casual about a lot of things in the SMTP protocol\nand in what information it hands to higher layers; for example, it\nbasically ignores SMTP parameters on MAIL FROM and RCPT TO. It will\naccept far longer command lines than are required by the RFC, it has\nshorter timeouts than the RFC requires (although you can change that),\nand it is somewhat slapdash in doing basic sanity checking on addresses\n(the author declines to write an RFC 5321 address parser just to be\nfully correct, and yes it's a pity that this part of net/mail is not\nexported and no, we're not faking things up so we can use net/mail's\nversion). These are all defects but the odds of the author fixing them\nare low because his sinkhole SMTP server doesn't currently need them.\n\n(Pull requests are welcome.)\n\nSmtpd supports PIPELINING by paying no attention to people who do it\nanyways and supports STARTTLS if you provide a certificate and a key.\nIt advertises 8BITMIME and accepts the relevant MAIL FROM parameter;\nregardless of what clients do, messages are received in all 8 bits.\nIt rejects VRFY and EXPN attempts. It supports AUTH if you configure\none or more authentication methods.\n\nReferences:\n\thttp://tools.ietf.org/html/rfc5321\n\thttp://golang.org/pkg/net/smtp/\n\nSee also:\n\thttps://github.com/flashmob/go-guerrilla\n\nGo-Guerilla SMTPd requires a real database server and is less RFC\nneurotic than smtpd (eg it assumes that clients always send commands in\nthe right order). It's also a monolithic program instead of a package\nthat you can reuse.\n\nCREDITS\n\nChris Siebenmann https://github.com/siebenmann\nstarted writing this.\n\nFelix Lange https://github.com/fjl contributed SMTP AUTH support.\n\nCOPYRIGHT:\nGPL v3 for now\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredsift%2Fsmtpd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredsift%2Fsmtpd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredsift%2Fsmtpd/lists"}