문제

수백 개의 뉴스 레터를 보내야하는데 먼저 이메일이 서버에 있는지 확인하고 싶습니다. SMTP 유효성 검사라고합니다. 적어도 인터넷에 대한 연구를 기반으로 할 때 그렇게 생각합니다.

이 작업을 수행 할 수있는 여러 라이브러리가 있으며 ASP Classic ( http://www.coveryourasp.com/ValidateEmail.asp#Result3 ),하지만 ASP Classic을 읽기가 어렵고 타사 라이브러리를 사용하는 것 같습니다 ...

C #에 SMTP 유효성 검사를위한 코드가 있습니까? 그리고 / 또는 작동 방식에 대한 일반적인 설명이 있습니까?

도움이 되었습니까?

해결책

대부분의 MTA (Mail Transfer Agent)는 스팸 방지를 위해 VRFY 명령을 해제합니다. 여러 RCPT TO를 연속으로 시도하면 차단 될 수도 있습니다 ( http://www.spamresource.com/2007/01/whatever-happened-to-vrfy.html ).따라서 해당 검증을 수행 할 라이브러리를 찾으더라도 그만한 가치가 없습니다.Ishmaeel이 옳습니다. 실제로 알아낼 수있는 유일한 방법은 이메일을 보내고 반송 여부를 확인하는 것입니다.

@Hrvoje : 예, 거부 된 이메일을 모니터링하는 것이 좋습니다.하지만 반송 된 모든 메일이 자동으로 "존재하지 않음"목록에 포함되는 것은 아닙니다. 또한 일시적인 오류 (예 : 편지함 가득 참)와 영구 오류를 구분해야합니다.

다른 팁

SMTP는 TCP / IP를 통해 전달되는 텍스트 기반 프로토콜입니다.

유효성 검사 프로그램은 서버의 포트 25 (SMTP)에 대한 TCP / IP 연결을 열고 몇 줄을 쓰고 답을 읽어야합니다.유효성 검사는 "RCTP TO"줄과 "VFRY"줄에서 수행되지만 항상 그런 것은 아닙니다.

SMTP RFC 는 작동 방식을 설명합니다 (아래의 Green@Beta.ARPA 참조,S는 클라이언트가 보낸 라인, R은 서버에서받은 라인) : 라코 디스

많은 도메인이 남용으로 인해 오 탐지를 반환하는 것은 사실이지만 SMTP 유효성 검사 외에도 여러 수준의 유효성 검사를 수행하는 훌륭한 구성 요소가 여전히 있습니다. 예를 들어, 적어도 도메인이 존재하는지 먼저 확인하는 것이 좋습니다. 이 질문과 관련된 리소스 목록을 작성하는 중입니다. 여기에서 추적 할 수 있습니다.

http://delicious.com/dworthley/email.validation

이 목록에 추가하고 싶은 분들을 위해 여기에 현재 가지고있는 정보도 포함하겠습니다.

  • aspNetMX
  • .NET 이메일 유효성 검사 마법사 클래스 라이브러리
  • MONOProg Email Validator.Net

    방탄 양식과 훌륭한 사용자 환경을 위해 이메일 주소의 여러 측면을 가능한 한 많이 확인하는 것이 좋습니다. aspNetMX 검사기에서 확인할 수 있습니다.

    • 구문
    • 잘못된 이메일 주소 목록에 대한 이메일
    • 불량 도메인 목록에 대한 도메인
    • 사서함 도메인 목록
    • 도메인 존재 여부
    • 도메인에 대한 MX 레코드가 있는지 여부
    • 마지막으로 SMTP를 통해 사서함 존재 여부

      이 마지막 단계는 기본적으로 모든 계정 확인 요청에 대해 사실로 되돌려 관리자가 피할 수 있지만 대부분의 경우 사용자가 의도적으로 잘못된 주소를 입력 한 경우 이미 발견 된 것입니다. 그리고 주소의 도메인 부분에 사용자 오류가있는 경우에도 마찬가지입니다.

      물론 등록 화면이나 양식에 이러한 종류의 서비스를 사용하는 모범 사례는 이러한 종류의 유효성 검사와 확인 프로세스를 결합하여 이메일 주소가 유효한지 확인하는 것입니다. 확인 프로세스 앞에 이메일 유효성 검사기를 사용할 때 가장 좋은 점은 전반적인 사용자 경험을 향상시킬 수 있다는 것입니다.

아래 코드를 시도해 볼 수 있습니다. 잘 작동합니다. 라코 디스

감사합니다. 라훌 사라 스왓

Real (TM) 이메일 유효성 검사는 주소로 무언가를 보내려고하고 거부 / 반송 여부를 확인합니다.따라서 메일 링리스트에서 실패한 주소를 제거하기 만하면됩니다.

이렇게 잘못 생각하지 마세요. 요즘에는 소수 이상의 사람들에게 뉴스 레터를 보내는 것은 상당히 심각한 문제입니다.예, SMTP 전송 중에 동 기적으로 (일반적으로 연결 한 SMTP 서버가 신뢰할 수있는 경우) 발생할 수있는 반송 (거부 된 이메일)을 모니터링하거나 이후 일정 시간 동안 발생하는 시스템 생성 이메일 메시지로 비동기 적으로 모니터링해야합니다.SMTP 전송이 성공했습니다.

또한 이러한 이메일을 보낼 때 CAN-SPAM 법을 염두에두고 법률을 준수하십시오.수신 거부 링크와 실제 주소를 제공해야합니다 (당신을 식별하고 t0은 사용자가 원하는 경우 달팽이 메일을 통해 수신 거부 요청을 보낼 수 있도록 허용).

이러한 작업을 수행하지 않으면 IP가 기껏해야 널 라우팅되고 최악의 경우 고소 될 수 있습니다.

.NET 용 이메일 검사기 구성 요소 가 필요할 수 있습니다.

다음은 코드 예입니다. 라코 디스

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