{"id":15653714,"url":"https://github.com/rgl/mailbouncedetector","last_synced_at":"2025-04-13T15:40:25.879Z","repository":{"id":48383155,"uuid":"43366872","full_name":"rgl/MailBounceDetector","owner":"rgl","description":"Detects whether a MailKit email Message is a bounce message","archived":false,"fork":false,"pushed_at":"2025-01-29T08:59:08.000Z","size":53,"stargazers_count":28,"open_issues_count":16,"forks_count":12,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-11T16:17:54.918Z","etag":null,"topics":["bounce","bounce-messages","mail","mime"],"latest_commit_sha":null,"homepage":null,"language":"C#","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/rgl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-29T12:47:49.000Z","updated_at":"2025-01-29T08:52:03.000Z","dependencies_parsed_at":"2024-10-23T03:36:54.905Z","dependency_job_id":null,"html_url":"https://github.com/rgl/MailBounceDetector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2FMailBounceDetector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2FMailBounceDetector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2FMailBounceDetector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgl%2FMailBounceDetector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgl","download_url":"https://codeload.github.com/rgl/MailBounceDetector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248739732,"owners_count":21154219,"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","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":["bounce","bounce-messages","mail","mime"],"created_at":"2024-10-03T12:46:43.509Z","updated_at":"2025-04-13T15:40:25.852Z","avatar_url":"https://github.com/rgl.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MailBounceDetector\r\n\r\n[![Build status](https://github.com/rgl/MailBounceDetector/actions/workflows/build.yml/badge.svg)](https://github.com/rgl/MailBounceDetector/actions/workflows/build.yml)\r\n\r\nthis library detects whether a message is a [bounce message](https://en.wikipedia.org/wiki/Bounce_message).\r\n\r\nthis detects [standard](#standard-bounce-messages) and [qmail](#qmail-bounce-messages) bounce messages.\r\n\r\nsee the [unit tests](MailBounceDetector.Tests/BounceDetectorTests.cs) for an example on how that information is exposed by the library.\r\n\r\n## Standard bounce messages\r\n\r\na bounce message is one that has (or is) a `multipart/report; report-type=delivery-status` MIME part. its comprised of two or three sub-parts:\r\n\r\n1. the human readable description of the bounce. normally this is a `text/plain` or `text/html` part.\r\n2. the machine readable description of the bounce. this is a `message/delivery-status` part.\r\n3. the original message that bounced. this part is optional, and might not have the complete message. its useful to known some of the original message headers such as the `Message-Id`. this is normally a `message/rfc822` part.\r\n\r\nthe most important part is the `message/delivery-status` part; it looks something like:\r\n\r\n```plain\r\nContent-Type: message/delivery-status\r\n\r\nReporting-MTA: dns; PTPEDGE02.test.local\r\n\r\nFinal-recipient: RFC822;\r\n    email_that_does_not_exists_this_is_just_a_test@gmail.com\r\nAction: failed\r\nStatus: 5.1.1\r\nRemote-MTA: dns; mx.google.com\r\nX-Supplementary-Info: \u003cmx.google.com #5.1.1 smtp;550-5.1.1 The email account\r\n    that you tried to reach does not exist.Please try 550-5.1.1 double-checking\r\nthe recipient's email address for typos or 550-5.1.1 unnecessary spaces.\r\n    Learn more at 550 5.1.1  https://support.google.com/mail/answer/6596\r\n    om11si19081667wic.29 - gsmtp\u003e\r\n```\r\n\r\n### Standard bounce messages references\r\n\r\n* [RFC6522 about the `multipart/report` part: The Multipart/Report Media Type for the Reporting of Mail System Administrative Messages](https://tools.ietf.org/html/rfc6522)\r\n* [RFC3464 about the `message/delivery-status` part: An Extensible Message Format for Delivery Status Notifications](https://tools.ietf.org/html/rfc3464)\r\n* [RFC3463 about the `message/delivery-status` part status codes: Enhanced Mail System Status Codes](https://tools.ietf.org/html/rfc3463)\r\n\r\n## qmail bounce messages\r\n\r\na bounce message is one that is a `text/plain` (which can also be inside a `multipart/alternative`) MIME part, e.g.:\r\n\r\n ```plain\r\nDate: 17 Mar 1996 03:54:40 -0000\r\nFrom: MAILER-DAEMON@silverton.berkeley.edu\r\nTo: djb@silverton.berkeley.edu\r\nSubject: failure notice\r\n\r\nHi. This is the qmail-send program at silverton.berkeley.edu.\r\nI'm afraid I wasn't able to deliver your message to the\r\nfollowing addresses. This is a permanent error; I've given up.\r\nSorry it didn't work out.\r\n\r\n\u003cgod@heaven.af.mil\u003e:\r\nSorry, I couldn't find any host by that name.\r\n\r\n--- Below this line is a copy of the message.\r\n\r\nReturn-Path: \u003cdjb@silverton.berkeley.edu\u003e\r\nReceived: (qmail 317 invoked by uid 7); 17 Mar 1996 03:54:38 -0000\r\nDate: 17 Mar 1996 03:54:38 -0000\r\nMessage-ID: \u003c19960317035438.316.qmail@silverton.berkeley.edu\u003e\r\nFrom: djb@silverton.berkeley.edu (D. J. Bernstein)\r\nTo: god@heaven.af.mil\r\nSubject: are you there?\r\n\r\nJust checking.\r\n```\r\n\r\n### qmail bounce messages references\r\n\r\n* [The qmail-send Bounce Message Format (QSBMF)](http://cr.yp.to/proto/qsbmf.txt)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frgl%2Fmailbouncedetector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frgl%2Fmailbouncedetector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frgl%2Fmailbouncedetector/lists"}