문제

반송된 이메일과 반송 이유를 확인하는 소프트웨어나 .NET 라이브러리를 추천할 수 있는 사람이 있습니까?그때 읽을 수 있는 pop3 계정으로 반송된 이메일을 받습니다.

잘못된 이메일 주소로부터 사용자 데이터베이스를 깨끗하게 유지하고 이를 자동화하고 싶습니다(사용자를 잘못된 이메일로 표시).

도움이 되었습니까?

해결책

나는 반송 이메일과 다양한 유형을 처리하는 데 많은 작업을 수행했습니다.보고 있는 이메일이 실제로 특정 유형의 반송 메일인지 확실히 확인하고 싶다면 좋은 필터를 사용하는 것이 좋습니다.나는 함께 일했다 부기 도구 그리고 그것은 아주 잘 작동했습니다.반송 유형이 하드인지, 소프트인지, 일시적인지 또는 누군가가 구독을 취소하려고 하는지 알려줍니다..Net을 포함한 여러 API가 있으며 작업하기가 매우 쉽다는 것을 알았습니다.

다른 팁

~처럼 abfo 라고, POP3 프로토콜은 매우 간단하므로 메시지를 받는 것은 더 이상 생각할 필요가 없습니다.오류를 가져오기 위해 메시지를 구문 분석하는 것은 더 어렵고, 오류를 일으킨 이메일과 실패한 이유를 안정적으로 구문 분석하는 것은 정말 어렵습니다.문제는 반송 메시지에 표준 형식이 없으며 기본 형식이 MTA마다 다르다는 것입니다.그런 다음 사이트 관리자는 실패 이유를 조정하여 인식하기 어렵게 만들 수 있으며, 사이트 관리자는 실패 메시지 템플릿을 수정하여 이를 거의 불가능하게 만들 수 있습니다.

.NET 메일링 리스트 관리자를 찾을 수 있는지, 반송 처리 코드의 용도를 변경할 수 있는지 확인하십시오.실패하면 메시지를 보내는 도구를 변경하여 고유한(및 되돌릴 수 있는) 봉투 발신자(VERP라고 하는 것 같아요?)로부터 각 이메일을 보낼 수 있는지 확인하세요.이렇게 하면 이메일 본문을 스캔할 필요가 없으며 실패 메시지의 수신자 주소를 조사하여 실패한 수신자가 누구인지 알 수 있습니다.

TcpClient를 사용하는 것은 매우 쉽습니다.서버를 엽니다:

TcpClient tcpClient = new TcpClient();
tcpClient.Connect(POP3Server, POP3Port);
NetworkStream stream = tcpClient.GetStream();

환영 메시지를 읽어보세요:

int read = stream.Read(inBuffer, 0, inBuffer.Length);
string response = Encoding.ASCII.GetString(inBuffer, 0, read);
if (response.IndexOf("+OK") != 0) throw new ...;

서버에 다시 쓰기:

byte[] outBuffer = Encoding.ASCII.GetBytes("USER " + account + "\r\n");
stream.Write(outBuffer, 0, outBuffer.Length);

그러면 USER 명령이 전송됩니다.로그인해야 메시지를 받을 수 있습니다. POP3를 참조하세요. RFC 전체 명령 목록을 보려면직접 굴릴 생각이 없다면 이것을 확인하십시오 CodeProject 기사.

답변 감사합니다. 좋습니다!제가 직접 조사해서 알아냈어요 목록보모 - 사용이 매우 간단하며 바운스 유형을 알려줍니다.개념 증명을 작성하고 어느 것이 더 마음에 드는지 확인하겠습니다.

귀하의 질문을 통해 제가 사용하려고 했던 Wordpress Newsletter 플러그인에는 반송 관리 기능이 없고 나에게도 뭔가가 필요하다는 사실을 깨달았습니다.

한참을 둘러보더니 무료 오픈소스에 정착했습니다. PHPlist 뉴스레터 관리자.

그들은 자세히 설명합니다 반송 처리를 위한 설정 그리고 그들은 실험적인 것을 가지고 있습니다 고급 반송 처리 기능 그러면 반송 처리를 원하는 방식으로 정확하게 사용자 정의할 수 있습니다.

PHPlist를 사용하지 않기로 결정했다면 PHPlist가 어떻게 사용되는지 읽어보는 것이 유용한 정보가 될 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top