Verifalia는 이메일 주소를 실시간으로 검증하고 전달 가능한지 여부를 확인하기 위한 간단한 HTTPS 기반 API를 제공합니다. 이 SDK 라이브러리는 Verifalia와 통합되어 다음 플랫폼에서 이메일 주소를 확인할 수 있습니다.
Verifalia에 대해 자세히 알아보려면 https://verifalia.com을 참조하세요.
Verifalia 이메일 확인 SDK 라이브러리를 .NET 프로젝트에 추가하는 가장 쉽고 쉬운 방법은 NuGet 패키지 관리자를 사용하는 것입니다.
Visual Studio 내에서 NuGet GUI를 사용하여 Verifalia NuGet 패키지를 검색하고 설치할 수 있습니다. 또는 바로 가기로 패키지 관리자 콘솔에 다음 명령을 입력하면 됩니다.
Install-Package Verifalia
Verifalia SDK를 .NET 솔루션에 추가하는 또 다른 방법으로, github에서 SDK 소스 프로젝트를 다운로드하고 원하는 폴더에 추출한 후 자체 프로젝트의 참조를 Verifalia SDK 프로젝트에 추가할 수 있습니다. SDK 프로젝트는 Visual Basic(VB.NET), C++/CLI, J#, IronPython, IronRuby, F# 및 PowerShell을 포함한 다른 .NET 언어에서도 참조하고 사용할 수 있는 C# 프로젝트입니다.
https://verifalia.com에서 자세히 알아보세요.
가장 먼저 해야 할 일: Verifalia API에 대한 인증은 루트 Verifalia 계정 또는 해당 사용자 중 한 명(이전에는 하위 계정으로 알려짐)의 자격 증명을 통해 수행됩니다. Verifalia 계정이 없는 경우 Verifalia 계정에 등록하세요. 무료. 보안상의 이유로 항상 API 액세스를 위한 전용 사용자를 생성하여 사용하는 것이 좋습니다. 그렇게 하면 API에 필요한 특정 권한만 할당할 수 있기 때문입니다.
https://verifalia.com/developers#authentication에서 Verifalia API 인증에 대해 자세히 알아보세요.
Verifalia 자격 증명이 있으면 VerifaliaRestClient 유형의 새 인스턴스를 생성하는 동안 이를 사용하십시오. 이는 Verifalia API에 대한 다른 모든 작업의 시작점이 될 것입니다. 제공된 자격 증명은 HTTP 기본을 사용하여 API에 자동으로 제공됩니다. 인증 방법.
using Verifalia . Api ;
var verifalia = new VerifaliaRestClient ( "username" , "password" ) ;HTTP 기본 인증 방법 외에도 이 SDK는 후속 섹션에 설명된 대로 Verifalia API에 인증하는 다른 다양한 방법도 지원합니다.
베어러 인증은 HTTP 기본 인증보다 더 높은 보안을 제공합니다. 후자는 각 API 호출 시 실제 자격 증명을 보내야 하지만 전자는 첫 번째 전용 인증 요청에서만 필요하기 때문입니다. 반면에 Bearer 인증에 필요한 첫 번째 인증 요청에는 무시할 수 없는 시간이 걸립니다. 단일 요청만 수행해야 하는 경우 HTTP 기본 인증을 사용하면 동일한 수준의 보안을 제공하고 더 빠릅니다.
using Verifalia . Api ;
using Verifalia . Api . Security ;
var verifalia = new VerifaliaRestClient ( new BearerAuthenticationProvider ( "username" , "password" ) ) ; 외부 인증 앱 또는 장치에서 시간 기반 일회용 비밀번호를 획득하는 데 사용해야 하는 ITotpTokenProvider 인터페이스의 사용자 지정 구현을 정의하여 다중 요소 인증(MFA)을 처리할 수도 있습니다. 루트 Verifalia 계정에서 보안 설정을 구성하세요.
using Verifalia . Api ;
using Verifalia . Api . Security ;
class MyTotpProvider : ITotpTokenProvider
{
public Task < string > ProvideTotpTokenAsync ( CancellationToken cancellationToken )
{
// Ask the user to type his or her TOTP token
Console . WriteLine ( "Acquire your TOTP token and type it here:" ) ;
var totpToken = Console . ReadLine ( ) ;
return Task . FromResult ( totpToken ) ;
}
}
// ...
var verifalia = new VerifaliaRestClient ( new BearerAuthenticationProvider ( "username" , "password" , new MyTotpProvider ( ) ) ) ; 이 인증 방법은 암호화 X.509 클라이언트 인증서를 사용하여 TLS 프로토콜을 통해 Verifalia API에 대해 인증합니다. mTLS(상호 TLS 인증) 또는 양방향 인증이라고도 하는 이 방법은 각 요청 시 유선을 통해 암호화 파생 키(실제 자격 증명이 아님)만 전송되므로 최고 수준의 보안을 제공합니다.
using Verifalia . Api ;
using Verifalia . Api . Security ;
var verifalia = new VerifaliaRestClient ( new X509Certificate2 ( "mycertificate.pem" ) ) ; 이메일 주소 확인/검증과 관련된 모든 작업은 위에서 생성한 VerifaliaRestClient 인스턴스에 의해 노출된 EmailValidations 속성을 통해 수행됩니다. 이 속성은 유용한 메서드로 채워져 있으며 각 메서드에는 많은 오버로드가 있습니다. 다음 몇 단락에서는 가장 많이 사용되는 메서드를 살펴보므로 라이브러리를 탐색하고 포함된 xmldoc 도움말을 살펴보고 다른 기회를 찾는 것이 좋습니다.
라이브러리는 이메일 확인 작업이 완료될 때까지 자동으로 기다립니다 . 필요한 경우 대기 옵션을 조정하고 전체 기본 폴링 프로세스를 더 효과적으로 제어할 수 있습니다. 자세한 내용은 아래의 대기 옵션 섹션을 참조하세요.
.NET 애플리케이션에서 이메일 주소를 검증하려면 SubmitAsync() 메소드를 호출할 수 있습니다. 이 메소드는 하나 이상의 이메일 주소와 예상 결과 품질, 중복 제거 기본 설정, 처리 우선순위를 포함하여 Verifalia에 전달하려는 최종 확인 옵션을 허용합니다.
참고 이메일 주소 목록을 확인해야 하는 경우 소스 세트를 반복하고 제출하는 대신 전용
SubmitAsync()메서드 오버로드 중 하나를 통해 한 번에 모두 제출하는 것이 좋습니다(다음 섹션 참조). 하나씩 주소를 다룹니다. 한꺼번에 확인하는 방법은 속도가 더 빠를 뿐만 아니라 이메일 주소를 하나씩 확인할 때 사용할 수 없는 중복된 항목을 감지하고 표시할 수도 있습니다.
다음 예에서는 기본 옵션을 사용하여 이 라이브러리의 이메일 주소를 확인합니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( "[email protected]" ) ;
// At this point the address has been validated: let's print its email validation
// result to the console.
var entry = job . Entries [ 0 ] ;
Console . WriteLine ( $ "Classification: { entry . Classification } (status: { entry . Status } )" ) ;
// Classification: Deliverable (status: Success)예상할 수 있듯이 각 항목에는 확인된 이메일 주소에 대한 다양한 추가 세부 정보가 포함될 수 있습니다.
| 재산 | 설명 |
|---|---|
AsciiEmailAddressDomainPart | 필요한 경우 주석과 접는 공백을 제거하여 ASCII로 변환된 이메일 주소의 도메인 부분을 가져옵니다. |
Classification | 이 항목의 ValidationEntryClassification 값입니다. |
CompletedOn | 가능한 경우 이 항목이 완료된 날짜입니다. |
Custom | 유효성 검사가 완료되면 다시 전달되는 사용자 지정 선택적 문자열입니다. 사용자 정의 값을 앞뒤로 전달하려면 ValidationRequestEntry 의 Custom 속성을 사용하십시오. |
DuplicateOf | 이 항목의 Status Duplicate 인 경우 상위 Validation 에서 이 이메일 주소가 처음 나타나는 0부터 시작하는 인덱스입니다. 중복된 항목은 이 값과 최종 Custom 값을 제외한 결과 세부 정보를 노출하지 않습니다. |
Index | Validation 컨테이너 내 이 항목의 인덱스입니다. 이 속성은 API가 항목의 필터링된 보기를 반환하는 경우에 주로 유용합니다. |
InputData | 유효성을 검사 중인 입력 문자열입니다. |
EmailAddress | 최종 설명이나 접는 공백 없이 이메일 주소를 가져옵니다. 입력 데이터가 구문상 잘못된 이메일 주소가 아닌 경우 null을 반환합니다. |
EmailAddressDomainPart | 주석과 접힌 공백 없이 이메일 주소의 도메인 부분을 가져옵니다. |
EmailAddressLocalPart | 주석과 접힌 공백 없이 이메일 주소의 로컬 부분을 가져옵니다. |
HasInternationalDomainName | true인 경우 이메일 주소에 국제 도메인 이름이 있습니다. |
HasInternationalMailboxName | true인 경우 이메일 주소에 국제 사서함 이름이 있습니다. |
IsDisposableEmailAddress | true인 경우 이메일 주소는 DEA(일회용 이메일 주소) 제공업체에서 가져온 것입니다. 일회용 이메일 주소란 무엇입니까? |
IsFreeEmailAddress | true인 경우 이메일 주소는 무료 이메일 주소 제공업체(예: gmail, yahoo, outlook/hotmail 등)에서 가져온 것입니다. |
IsRoleAccount | true인 경우 이메일 주소의 로컬 부분은 잘 알려진 역할 계정입니다. |
Status | 이 항목의 ValidationEntryStatus 값입니다. |
Suggestions | Verifalia가 확인 과정에서 잠재적인 오타를 식별한 경우 입력 데이터에 대한 잠재적인 수정 사항. |
SyntaxFailureIndex | 결국 구문 유효성 검사가 실패하게 된 이메일 주소의 문자 위치입니다. |
다음은 Verifalia에서 제공하는 추가 결과 세부정보 중 일부를 보여주는 또 다른 예입니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( "bat[[email protected]" ) ;
var entry = job . Entries [ 0 ] ;
Console . WriteLine ( $ "Classification: { entry . Classification } " ) ;
Console . WriteLine ( $ "Status: { entry . Status } " ) ;
Console . WriteLine ( $ "Syntax failure index: { entry . SyntaxFailureIndex } " ) ;
if ( entry . Suggestions != null )
{
Console . WriteLine ( "Suggestions:" ) ;
foreach ( var suggestion in entry . Suggestions )
{
Console . WriteLine ( $ "- { suggestion } " ) ;
}
}
// Classification: Undeliverable
// Status: InvalidCharacterInSequence
// Syntax failure index: 3
// Suggestions:
// - [email protected] 단일 주소 대신 이메일 주소 목록을 확인하려면 IEnumerable<string> 을 허용하는 SubmitAsync() 메서드 오버로드를 사용할 수 있습니다. 확인할 이메일 주소가 원래 파일에 저장되어 있는 경우, 간단히 파일을 업로드하고 Verifalia가 자동으로 이를 가져와서 확인하도록 할 수도 있습니다. 자세한 내용은 다음 섹션을 참조하세요.
다음은 일부 이메일 주소가 포함된 배열을 확인하는 방법을 보여주는 예입니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( new [ ] {
"[email protected]" ,
"[email protected]" ,
"[email protected]"
} ) ;
Console . WriteLine ( $ "Job ID: { job . Overview . Id } " ) ;
foreach ( var entry in job . Entries )
{
Console . WriteLine ( $ "- { entry . InputData } => { entry . Classification } ( { entry . Status } )" ) ;
}
// Job Id: 290b5146-eeac-4a2b-a9c1-61c7e715f2e9
// - [email protected] => Deliverable (Success)
// - [email protected] => Undeliverable (DomainIsMisconfigured)
// - [email protected] => Deliverable (Success)이 라이브러리에는 다음을 포함하여 이메일 주소가 포함된 파일 제출 및 유효성 검사에 대한 지원이 포함되어 있습니다.
파일을 제출하고 유효성을 검사하려면 위에서 언급한 SubmitAsync() 메서드를 사용하여 Stream 또는 FileInfo 인스턴스를 전달하거나 파일 내용이 포함된 byte[] 만 전달할 수 있습니다. 이와 함께 제출된 파일의 특성에 따라 처리할 최종 시작 및 끝 행, 열, 시트 인덱스, 줄 끝 및 구분 기호를 지정할 수도 있습니다(소스의 FileValidationRequest 참조). 자세히 알아보세요).
Excel 파일을 제출하고 확인하는 방법은 다음과 같습니다. 예:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) ) ; 고급 옵션을 보려면 FileValidationRequest 인스턴스를 SubmitAsync() 메서드에 전달하면 됩니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileValidationRequest ( new FileInfo ( "that-file.xslx" ) )
{
Sheet = 3 ,
StartingRow = 1 ,
Column = 5
} ,
quality : QualityLevelName . High ) ; 다음은 Stream 인스턴스를 제출하는 방법과 파일의 MIME 콘텐츠 유형을 지정하는 방법을 보여주는 또 다른 예입니다. 이는 FileInfo 인스턴스를 전달하는 경우 파일 확장자에서 자동으로 결정됩니다.
Stream inputStream = .. . ; // TODO: Acquire the input data somehow
var job = await verifalia
. EmailValidations
. SubmitAsync ( inputStream ,
MediaTypeHeaderValue . Parse ( WellKnownMimeContentTypes . TextPlain ) ) ; // text/plain확인을 위해 하나 이상의 이메일 주소를 제출하는 동안 Verifalia 처리 엔진의 동작과 API 소비자 관점의 확인 흐름에 영향을 미치는 여러 옵션을 지정할 수 있습니다.
Verifalia는 표준 , 높음 , 극단 이라는 세 가지 품질 수준을 제공합니다. 이는 이메일 확인 엔진이 일시적인 배달 불가 문제, 느린 메일 교환기 및 확인 결과의 품질에 영향을 미칠 수 있는 기타 일시적인 문제를 처리하는 방법을 배제합니다. SubmitAsync() 메서드 오버로드는 원하는 품질 수준을 지정할 수 있는 quality 매개 변수를 허용합니다. 다음은 고품질 수준을 사용하여 이메일 주소를 확인하는 방법을 보여주는 예입니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( "[email protected]" , quality : QualityLevelName . High ) ; 한 번에 여러 이메일 주소를 허용하는 SubmitAsync() 메서드 오버로드를 사용하면 동일한 입력 세트와 관련된 중복된 항목을 처리하는 방법을 지정할 수 있습니다. Verifalia는 기존 IETF 표준을 강력하게 준수하는 안전 중복 제거 모드와 오늘날 대부분의 메일 교환기 구성에서 볼 수 있는 것과 더 일치하는 완화 모드를 지원합니다.
다음 예에서는 완화된 중복 제거 모드를 사용하여 이메일 주소 목록을 가져오고 확인하고 중복된 항목을 표시하는 방법을 보여줍니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) , deduplication : DeduplicationMode . Relaxed ) ; Verifalia는 계정 수준에서 정의된 데이터 보존 정책에 따라 완료된 이메일 확인 작업을 자동으로 삭제하며, 이는 결국 사용자 수준에서 재정의될 수 있습니다. Verifalia 클라이언트 영역을 사용하여 이러한 설정을 구성할 수 있습니다.
제출된 이메일 확인 작업의 수명을 관리하는 작업별 데이터 보존 정책을 지정할 수도 있습니다. 이를 수행하려면 ValidationRequest 또는 FileValidationRequest 인스턴스를 허용하고 그에 따라 Retention 속성을 초기화하는 SubmitAsync() 메서드 오버로드를 사용합니다.
예를 들어 이메일 주소를 확인하는 동안 데이터 보존 정책을 10분으로 설정하는 방법은 다음과 같습니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( new ValidationRequest ( new [ ]
{
"[email protected]"
} )
{
Retention = TimeSpan . FromMinutes ( 10 )
} ) ; 기본적으로 SubmitAsync() 메서드 오버로드는 이메일 확인 작업을 Verifalia에 제출하고 완료될 때까지 기다립니다. Verifalia 계정 계획, 제출 내용에 포함된 이메일 주소 수, 지정된 품질 수준 및 테스트 중인 메일 교환기의 대기 시간을 포함한 기타 네트워크 요인에 따라 전체 프로세스를 완료하는 데 약간의 시간이 필요할 수 있습니다.
특정 이메일 확인 작업이 완료되기를 기다리는 동안 라이브러리는 결과가 준비될 때까지 기본 Verifalia API를 자동으로 폴링합니다. 기본적으로 Verifalia API v2.4에 도입된 긴 폴링 모드를 활용하려고 시도합니다. 이를 통해 요청 수를 최소화하고 확인 결과를 더 빠르게 얻을 수 있습니다.
그러나 특정 시나리오(예: 마이크로서비스 아키텍처)에서는 작업 완료를 기다리지 않고 Verifalia API에 대기열에 넣도록 요청하는 것이 더 나을 수 있습니다. 이 경우 라이브러리는 작업을 반환하기만 합니다. 개요(확인 결과 아님) 및 GetAsync() 메서드를 사용하여 확인 결과를 검색해야 합니다.
이를 수행하려면 다음 예제와 같이 SubmitAsync() 메서드 오버로드의 waitOptions 매개 변수 값으로 WaitOptions.NoWait 를 지정할 수 있습니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) ,
waitOptions : WaitOptions . NoWait ) ;
Console . WriteLine ( $ "Status: { job . Overview . Status } " ) ;
// Status: InProgress 이메일 주소가 많은 작업의 경우 Verifalia 이메일 확인 엔진에서 처리되는 진행 상황을 추적하는 것이 유용할 수 있습니다. 이를 위해 WaitOptions 클래스의 인스턴스를 만들고 최종적으로 Progress 속성을 통해 진행률 알림을 받는 핸들러를 제공할 수 있습니다.
콘솔 창에 제출된 작업의 진행률을 표시하는 진행률 알림 핸들러를 정의하는 방법은 다음과 같습니다.
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-other-file.csv" ) ,
waitOptions : new WaitOptions
{
Progress = new Progress < ValidationOverview > ( overview =>
{
Console . WriteLine ( overview . Progress ? . Percentage ) ;
} )
} ) ;각 이메일 검증 작업과 함께 작업이 완료되면 Verifalia가 호출(POST)할 URL을 지정할 수 있습니다. 이 URL은 HTTPS 또는 HTTP 구성표를 사용해야 하며 인터넷을 통해 공개적으로 액세스할 수 있어야 합니다. 완료 콜백에 대해 자세히 알아보려면 https://verifalia.com/developers#email-validations-completion-callback을 참조하세요.
완료 콜백 URL을 지정하려면 ValidationRequest 또는 FileValidationRequest SubmitAsync() 메서드에 전달하고 아래 예제와 같이 그에 따라 CompletionCallback 속성을 설정합니다.
await verifalia
. EmailValidations
. SubmitAsync ( new ValidationRequest ( new [ ] { "[email protected]" } )
{
CompletionCallback = new CompletionCallback ( "https://your-website-here/foo/bar" )
} ) ;완료 콜백은 비동기식으로 호출되며 콜백 URL이 호출되는 데 최대 몇 초가 걸릴 수 있습니다.
원하는 이메일 확인 작업에 대한 Validation 인스턴스 또는 ValidationOverview 인스턴스를 각각 반환하는 GetAsync() 및 GetOverviewAsync() 메서드를 통해 작업을 검색할 수 있습니다. 이를 수행하는 동안 라이브러리는 작업이 완료될 때까지 자동으로 기다리며, SubmitAsync() 메서드 오버로드에 대해 설명한 것과 똑같은 방식으로 앞서 언급한 메서드에 waitOptions 매개 변수를 전달하여 이 동작을 조정할 수 있습니다. 자세한 내용은 대기 옵션 섹션을 참조하세요.
다음은 식별자가 주어지면 작업을 검색하는 방법을 보여주는 예입니다.
var jobId = Guid . Parse ( "ec415ecd-0d0b-49c4-a5f0-f35c182e40ea" ) ;
var job = await verifalia . EmailValidations . GetAsync ( jobId ) ; 또한 이 라이브러리를 사용하면 사람이 읽을 수 있는 확인 결과 표현을 생성하는 것을 목표로 하는 ExportEntriesAsync() 메서드를 통해 완료된 이메일 검증 작업의 항목을 다양한 출력 형식으로 내보낼 수 있습니다.
경고 : 출력 스키마(열/레이블/데이터 형식)는 상당히 완전하지만 항상 변경될 수 있다고 고려해야 합니다. 안정적인 출력 스키마에 의존해야 하는 경우 대신
GetAsync()/GetEntriesAsync()메서드를 사용하십시오.
다음은 지정된 이메일 확인 작업을 쉼표로 구분된 값(CSV) 파일로 내보내는 방법을 보여주는 예입니다.
// Exports the validated entries for the job in the CSV format
var exportedStream = await verifalia
. EmailValidations
. ExportEntriesAsync ( new Guid ( "722c2fd8-8837-449f-ad24-0330c597c993" ) ,
ExportedEntriesFormat . Csv ) ;
// Creates the output file stream
var fileStream = new FileStream ( "my-list.csv" , FileMode . Create ) ;
// Copies the exported stream into the output file stream
await exportedStream . CopyToAsync ( fileStream ) ; Verifalia는 구성 가능한 데이터 보존 정책(관련 섹션 참조) 후에 완료된 작업을 자동으로 삭제하지만 개인 정보 보호 및 보안상의 이유로 완료된 작업을 가능한 한 빨리 삭제하는 것이 좋습니다. 이를 수행하려면 제거하려는 작업 ID를 전달하는 DeleteAsync() 메서드를 호출하면 됩니다.
await verifalia
. EmailValidations
. DeleteAsync ( job . Id ) ;삭제되면 작업이 사라지며 해당 이메일 검증 결과를 검색할 수 있는 방법이 없습니다.
관리 및 보고 목적으로 과거 이메일 검증 작업의 세부 목록을 얻고 싶을 수도 있습니다. 이 SDK 라이브러리를 사용하면 ValidationOverview 인스턴스 컬렉션( SubmitAsync() 및 GetAsync() )에서 반환된 결과의 Overview 속성과 동일한 유형)을 비동기적으로 반복할 수 있는 ListAsync() 메서드를 통해 이 작업을 수행할 수 있습니다.
가장 최근 작업부터 가장 오래된 작업까지 작업을 반복하는 방법은 다음과 같습니다.
var jobOverviews = verifalia
. EmailValidations
. ListAsync ( new ValidationOverviewListingOptions
{
Direction = Direction . Backward
} ) ;
await foreach ( var jobOverview in jobOverviews )
{
Console . WriteLine ( "Id: {0}, status: {2}, entries: {3}" ,
jobOverview . Id ,
jobOverview . Status ,
jobOverview . NoOfEntries ) ;
}
// Prints out something like:
// Id: a7784f9a-86d4-436c-b8e4-f72f2bd377ac, status: InProgress, entries: 9886
// Id: 86d57c00-147a-4736-88cc-c918260c67c6, status: Completed, entries: 1
// Id: 594bbb0f-6f12-481c-926f-606cfefc1cd5, status: Completed, entries: 1
// Id: a5c1cd5b-39cc-43bc-9a3a-ee4a0f80ee6d, status: InProgress, entries: 226
// Id: b6f69e30-60dd-4c21-b2cb-e73ba75fb278, status: Completed, entries: 12077
// Id: 5e5a97dc-459f-4edf-a607-47371c32aa94, status: Deleted, entries: 1009
// ...
ListAsync()메서드는 C# 8.0 비동기 열거 가능 기능을 사용합니다. 이전 언어 지원에 대해서는ListSegmentedAsync()메서드 그룹을 확인하세요.
ListAsync() 메서드에는 동일한 options 인수를 통해 Verifalia API에서 반환된 이메일 확인 작업을 필터링하는 기능도 있습니다. 즉, 제출 날짜, 소유자 및 작업 상태를 기준으로 필터링할 수 있습니다.
위의 예에 표시된 목록 작업을 반복하는 방법은 다음과 같습니다. 이번에는 지정된 사용자의 작업과 지정된 날짜 범위만 반환합니다.
var jobOverviews = verifalia
. EmailValidations
. ListAsync ( new ValidationOverviewListingOptions
{
Direction = Direction . Backward ,
CreatedOn = new DateBetweenPredicate ( new DateTime ( 2024 , 1 , 3 ) ,
new DateTime ( 2024 , 1 , 7 ) ) ,
Owner = new StringEqualityPredicate ( "50173acd-9ed2-4298-ba7f-8ccaeed48deb" )
} ) ;
await foreach ( var jobOverview in jobOverviews )
{
// ...
} 귀하의 계정에 대한 Verifalia 크레딧을 관리하려면 위에서 생성된 VerifaliaRestClient 인스턴스에 의해 노출된 Credits 속성을 사용할 수 있습니다. 이전 주제와 마찬가지로 다음 몇 단락에서는 가장 많이 사용되는 작업을 살펴보겠습니다. 따라서 라이브러리를 탐색하고 다른 기회에 대해 포함된 xmldoc 도움말을 살펴보는 것이 좋습니다.
계정에서 수행해야 할 가장 일반적인 작업 중 하나는 사용 가능한 일일 무료 크레딧 및 크레딧 팩 수를 검색하는 것입니다. 이를 수행하려면 다음 예제와 같이 Balance 개체를 반환하는 GetBalanceAsync() 메서드를 사용할 수 있습니다.
var balance = await verifalia
. Credits
. GetBalanceAsync ( ) ;
Console . WriteLine ( "Credit packs: {0}, free daily credits: {1} (will reset in {2})" ,
balance . CreditPacks ,
balance . FreeCredits ,
balance . FreeCreditsResetIn ) ;
// Prints out something like:
// Credit packs: 956.332, free daily credits: 128.66 (will reset in 09:08:23)Verifalia 계정에 크레딧 팩을 추가하려면 https://verifalia.com/client-area#/credits/add를 방문하세요.
계정의 크레딧 소비를 모니터링하고 예측하는 방법으로 ListDailyUsagesAsync() 메서드를 사용하면 과거 크레딧 사용량에 대한 통계를 검색하여 비동기적으로 반복 가능한 DailyUsage 인스턴스 컬렉션을 반환할 수 있습니다. 또한 이 메서드를 사용하면 DailyUsageListingOptions 인스턴스를 전달하여 관심 기간을 제한할 수 있습니다. 요소는 소비(무료 크레딧, 크레딧 팩 또는 둘 다)가 발생한 날짜에 대해서만 반환됩니다.
지난 30일 동안의 일일 크레딧 사용량을 검색하는 방법은 다음과 같습니다.
var dailyUsages = verifalia
. Credits
. ListDailyUsagesAsync ( new DailyUsageListingOptions
{
DateFilter = new DateBetweenPredicate
{
Since = DateTime . Now . AddDays ( - 30 )
}
} ) ;
await foreach ( var dailyUsage in dailyUsages )
{
Console . WriteLine ( "{0:yyyyMMdd} - credit packs: {1}, free daily credits: {2}" ,
dailyUsage . Date ,
dailyUsage . CreditPacks ,
dailyUsage . FreeCredits ) ;
}
// Prints out something like:
// 20240201 - credit packs: 1965.68, free daily credits: 200
// 20240126 - credit packs: 0, free daily credits: 185.628
// 20240125 - credit packs: 15.32, free daily credits: 200
// ...
ListDailyUsagesAsync()메서드는 C# 8.0 비동기 열거 가능 기능을 사용합니다. 이전 언어 지원에 대해서는ListDailyUsagesSegmentedAsync()메서드 그룹을 확인하세요.
이 섹션에는 라이브러리의 현재 주요 버전에 대한 변경 로그가 나열되어 있습니다. 이전 버전의 경우 프로젝트 릴리스를 참조하세요. 명확성을 위해 빌드 및 개정 업데이트에 대한 로그는 제외됩니다.
2024년 1월 11 일 출시
2023년 5월 26 일 출시
ToAsyncEnumerableAsync() 메서드 문제가 해결되었습니다.2023년 2월 27 일 출시
WaitingStrategy 이름을 WaitOptions 로 바꾸고 후자를 리팩터링하여 이제 기본 폴링 대기 시간을 조정할 수 있도록 했습니다.WaitOptions 클래스를 통해 이를 변경할 수 있습니다).ValidationRequest 및 FileValidationRequest 클래스의 CompletionCallback 속성은 이제 간단한 Uri 대신 완전한 CompletionCallback 클래스를 가리킵니다.