Verifalia bietet eine einfache HTTPS-basierte API zur Validierung von E-Mail-Adressen in Echtzeit und zur Prüfung, ob sie zustellbar sind oder nicht; Diese SDK-Bibliothek lässt sich in Verifalia integrieren und ermöglicht die Überprüfung von E-Mail-Adressen auf den folgenden Plattformen:
Weitere Informationen zu Verifalia finden Sie unter https://verifalia.com
Der beste und einfachste Weg, die Verifalia-SDK-Bibliothek für die E-Mail-Verifizierung zu Ihrem .NET-Projekt hinzuzufügen, ist die Verwendung des NuGet-Paketmanagers.
In Visual Studio können Sie die NuGet-GUI verwenden, um nach dem Verifalia NuGet-Paket zu suchen und es zu installieren. Oder geben Sie als Abkürzung einfach den folgenden Befehl in die Package Manager-Konsole ein:
Install-Package Verifalia
Als alternative Möglichkeit, das Verifalia SDK zu Ihrer .NET-Lösung hinzuzufügen, können Sie das SDK-Quellprojekt von Github herunterladen, es in einen Ordner Ihrer Wahl extrahieren und eine Referenz aus Ihrem eigenen Projekt zum Verifalia SDK-Projekt hinzufügen. Das SDK-Projekt ist ein C#-Projekt, das auch mit jeder anderen .NET-Sprache referenziert und verwendet werden kann, einschließlich Visual Basic (VB.NET), C++/CLI, J#, IronPython, IronRuby, F# und PowerShell.
Erfahren Sie mehr unter https://verifalia.com
Das Wichtigste zuerst: Die Authentifizierung bei der Verifalia-API erfolgt entweder über die Anmeldeinformationen Ihres Root-Verifalia-Kontos oder eines seiner Benutzer (früher als Unterkonten bezeichnet): Wenn Sie kein Verifalia-Konto haben, registrieren Sie sich einfach ein kostenloses. Aus Sicherheitsgründen ist es immer ratsam, einen dedizierten Benutzer für den Zugriff auf die API zu erstellen und zu verwenden, da dieser dadurch nur die spezifischen erforderlichen Berechtigungen zugewiesen werden können.
Erfahren Sie mehr über die Authentifizierung bei der Verifalia-API unter https://verifalia.com/developers#authentication
Sobald Sie Ihre Verifalia-Anmeldeinformationen zur Hand haben, verwenden Sie diese beim Erstellen einer neuen Instanz des Typs VerifaliaRestClient
, die den Ausgangspunkt für alle anderen Vorgänge mit der Verifalia-API darstellt: Die bereitgestellten Anmeldeinformationen werden der API automatisch über HTTP Basic bereitgestellt Authentifizierungsmethode.
using Verifalia . Api ;
var verifalia = new VerifaliaRestClient ( "username" , "password" ) ;
Zusätzlich zur HTTP-Basic-Auth-Methode unterstützt dieses SDK auch andere Möglichkeiten zur Authentifizierung bei der Verifalia-API, wie in den folgenden Abschnitten erläutert.
Die Bearer-Authentifizierung bietet eine höhere Sicherheit als HTTP Basic Auth, da letztere das Senden der tatsächlichen Anmeldeinformationen bei jedem API-Aufruf erfordert, während erstere dies nur bei einer ersten, dedizierten Authentifizierungsanforderung erfordert. Andererseits dauert die erste Authentifizierungsanfrage, die bei der Bearer-Authentifizierung erforderlich ist, nicht zu vernachlässigen: Wenn Sie nur eine einzige Anfrage ausführen müssen, bietet die Verwendung von HTTP Basic Auth das gleiche Maß an Sicherheit und ist außerdem schneller.
using Verifalia . Api ;
using Verifalia . Api . Security ;
var verifalia = new VerifaliaRestClient ( new BearerAuthenticationProvider ( "username" , "password" ) ) ;
Die Handhabung der Multi-Faktor-Authentifizierung (MFA) ist auch möglich, indem eine benutzerdefinierte Implementierung der ITotpTokenProvider
Schnittstelle definiert wird, die verwendet werden sollte, um das zeitbasierte Einmalkennwort von einer externen Authentifizierungs-App oder einem externen Authentifizierungsgerät abzurufen: um die Multi-Faktor-Authentifizierung hinzuzufügen Konfigurieren Sie in Ihrem Root-Verifalia-Konto Ihre Sicherheitseinstellungen.
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 ( ) ) ) ;
Diese Authentifizierungsmethode verwendet ein kryptografisches X.509-Client-Zertifikat zur Authentifizierung gegenüber der Verifalia-API über das TLS-Protokoll. Diese Methode, auch gegenseitige TLS-Authentifizierung (mTLS) oder bidirektionale Authentifizierung genannt, bietet den höchsten Grad an Sicherheit, da bei jeder Anfrage nur ein kryptografisch abgeleiteter Schlüssel (und nicht die eigentlichen Anmeldeinformationen) über die Leitung gesendet wird.
using Verifalia . Api ;
using Verifalia . Api . Security ;
var verifalia = new VerifaliaRestClient ( new X509Certificate2 ( "mycertificate.pem" ) ) ;
Jeder Vorgang im Zusammenhang mit der Verifizierung/Validierung von E-Mail-Adressen wird über die Eigenschaft EmailValidations
ausgeführt, die von der oben erstellten VerifaliaRestClient
-Instanz bereitgestellt wird. Die Eigenschaft ist mit nützlichen Methoden gefüllt, von denen jede viele Überladungen aufweist: In den nächsten Absätzen betrachten wir die am häufigsten verwendeten Methoden. Es wird daher dringend empfohlen, die Bibliothek zu erkunden und in der eingebetteten xmldoc-Hilfe nach weiteren Möglichkeiten zu suchen.
Die Bibliothek wartet automatisch auf den Abschluss von E-Mail-Verifizierungsaufträgen : Bei Bedarf ist es möglich, die Warteoptionen anzupassen und mehr Kontrolle über den gesamten zugrunde liegenden Abfrageprozess zu haben. Weitere Einzelheiten finden Sie im Abschnitt „Warteoptionen“ weiter unten.
Um eine E-Mail-Adresse aus einer .NET-Anwendung zu validieren, können Sie die SubmitAsync()
Methode aufrufen: Sie akzeptiert eine oder mehrere E-Mail-Adressen und alle eventuellen Verifizierungsoptionen, die Sie an Verifalia übergeben möchten, einschließlich der erwarteten Ergebnisqualität, Deduplizierungseinstellungen und Verarbeitungspriorität.
Hinweis Für den Fall, dass Sie eine Liste von E-Mail-Adressen überprüfen müssen, ist es ratsam, sie alle auf einmal über eine der dedizierten
SubmitAsync()
-Methodenüberladungen zu übermitteln (siehe die nächsten Abschnitte), anstatt über den Quellsatz zu iterieren und die zu übermitteln Adressen nacheinander. Die „Alles-auf-einmal-Methode“ wäre nicht nur schneller, sie würde auch die Erkennung und Markierung doppelter Elemente ermöglichen – eine Funktion, die bei der Überprüfung der E-Mail-Adressen einzeln nicht verfügbar ist.
Im folgenden Beispiel verifizieren wir eine E-Mail-Adresse mit dieser Bibliothek und verwenden dabei die Standardoptionen:
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)
Wie zu erwarten ist, kann jeder Eintrag verschiedene zusätzliche Details zur verifizierten E-Mail-Adresse enthalten:
Eigentum | Beschreibung |
---|---|
AsciiEmailAddressDomainPart | Ruft den Domänenteil der E-Mail-Adresse ab, konvertiert ihn bei Bedarf in ASCII und entfernt Kommentare und Leerzeichen. |
Classification | Der ValidationEntryClassification Wert für diesen Eintrag. |
CompletedOn | Das Datum, an dem dieser Eintrag abgeschlossen wurde, falls verfügbar. |
Custom | Eine benutzerdefinierte, optionale Zeichenfolge, die nach Abschluss der Validierung zurückgegeben wird. Um einen benutzerdefinierten Wert hin und her zu übergeben, verwenden Sie die Custom Eigenschaft von ValidationRequestEntry . |
DuplicateOf | Der nullbasierte Index des ersten Vorkommens dieser E-Mail-Adresse in der übergeordneten Validation , falls der Status für diesen Eintrag Duplicate lautet; Bei duplizierten Elementen werden außer diesem und den eventuellen Custom Werten keine Ergebnisdetails angezeigt. |
Index | Der Index dieses Eintrags innerhalb seines Validation ; Diese Eigenschaft ist vor allem dann nützlich, wenn die API eine gefilterte Ansicht der Elemente zurückgibt. |
InputData | Die Eingabezeichenfolge, die validiert wird. |
EmailAddress | Ruft die E-Mail-Adresse ab, ohne eventuelle Kommentare oder faltende Leerzeichen. Gibt null zurück, wenn die Eingabedaten keine syntaktisch ungültige E-Mail-Adresse sind. |
EmailAddressDomainPart | Ruft den Domänenteil der E-Mail-Adresse ab, ohne Kommentare und faltende Leerzeichen. |
EmailAddressLocalPart | Ruft den lokalen Teil der E-Mail-Adresse ab, ohne Kommentare und faltende Leerzeichen. |
HasInternationalDomainName | Wenn „true“, hat die E-Mail-Adresse einen internationalen Domänennamen. |
HasInternationalMailboxName | Wenn „true“, hat die E-Mail-Adresse einen internationalen Postfachnamen. |
IsDisposableEmailAddress | Wenn dies der Fall ist, stammt die E-Mail-Adresse von einem Anbieter für Einweg-E-Mail-Adressen (DEA). Was ist eine Wegwerf-E-Mail-Adresse? |
IsFreeEmailAddress | Wenn dies zutrifft, stammt die E-Mail-Adresse von einem kostenlosen E-Mail-Adressanbieter (z. B. Gmail, Yahoo, Outlook/Hotmail, ...). |
IsRoleAccount | Wenn „true“, ist der lokale Teil der E-Mail-Adresse ein bekanntes Rollenkonto. |
Status | Der ValidationEntryStatus Wert für diesen Eintrag. |
Suggestions | Die möglichen Korrekturen der Eingabedaten für den Fall, dass Verifalia während des Verifizierungsprozesses potenzielle Tippfehler feststellt. |
SyntaxFailureIndex | Die Position des Zeichens in der E-Mail-Adresse, die letztendlich dazu führte, dass die Syntaxüberprüfung fehlschlug. |
Hier ist ein weiteres Beispiel, das einige der zusätzlichen Ergebnisdetails zeigt, die von Verifalia bereitgestellt werden:
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]
Um eine Liste von E-Mail-Adressen zu überprüfen – anstelle einer einzelnen Adresse – kann die Methodenüberladung SubmitAsync()
verwendet werden, die einen IEnumerable<string>
akzeptiert; Wenn die zu verifizierenden E-Mail-Adressen ursprünglich in einer Datei gespeichert sind, ist es auch möglich, die Datei einfach hochzuladen und von Verifalia automatisch importieren und verifizieren zu lassen – Einzelheiten finden Sie im nächsten Abschnitt.
Hier ist ein Beispiel, das zeigt, wie ein Array mit einigen E-Mail-Adressen überprüft wird:
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)
Diese Bibliothek bietet Unterstützung für die Übermittlung und Validierung von Dateien mit E-Mail-Adressen, einschließlich:
Um Dateien zu übermitteln und zu validieren, kann man weiterhin die oben erwähnte SubmitAsync()
Methode verwenden und entweder eine Stream
oder eine FileInfo
Instanz oder nur ein byte[]
mit dem Dateiinhalt übergeben. Darüber hinaus ist es auch möglich, die eventuell zu verarbeitenden Anfangs- und Endzeilen, die Spalte, den Blattindex, das Zeilenende und das Trennzeichen anzugeben – natürlich abhängig von der Art der übermittelten Datei (siehe FileValidationRequest
in der Quelle). erfahren Sie mehr).
So übermitteln und verifizieren Sie beispielsweise eine Excel-Datei:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) ) ;
Für erweiterte Optionen übergeben Sie einfach FileValidationRequest
Instanz an die SubmitAsync()
Methode:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileValidationRequest ( new FileInfo ( "that-file.xslx" ) )
{
Sheet = 3 ,
StartingRow = 1 ,
Column = 5
} ,
quality : QualityLevelName . High ) ;
Und hier ist ein weiteres Beispiel, das zeigt, wie eine Stream
-Instanz übermittelt und der MIME-Inhaltstyp der Datei angegeben wird, der automatisch anhand der Dateierweiterung ermittelt wird, falls Sie eine FileInfo
Instanz übergeben:
Stream inputStream = .. . ; // TODO: Acquire the input data somehow
var job = await verifalia
. EmailValidations
. SubmitAsync ( inputStream ,
MediaTypeHeaderValue . Parse ( WellKnownMimeContentTypes . TextPlain ) ) ; // text/plain
Beim Einreichen einer oder mehrerer E-Mail-Adressen zur Verifizierung ist es möglich, mehrere Optionen anzugeben, die sich auf das Verhalten der Verifalia-Verarbeitungs-Engine sowie den Verifizierungsablauf aus Sicht des API-Verbrauchers auswirken.
Verifalia bietet drei unterschiedliche Qualitätsstufen – Standard , Hoch und Extrem – die ausschließen, wie die E-Mail-Verifizierungs-Engine mit vorübergehenden Unzustellbarkeitsproblemen, langsameren E-Mail-Austauschern und anderen potenziell vorübergehenden Problemen umgehen soll, die sich auf die Qualität der Verifizierungsergebnisse auswirken können. Die SubmitAsync()
Methodenüberladungen akzeptieren einen quality
, der es ermöglicht, die gewünschte Qualitätsstufe anzugeben; Hier ist ein Beispiel, das zeigt, wie eine E-Mail-Adresse mit der Qualitätsstufe „ Hoch“ verifiziert wird:
var job = await verifalia
. EmailValidations
. SubmitAsync ( "[email protected]" , quality : QualityLevelName . High ) ;
Die SubmitAsync()
Methodenüberladungen, die mehrere E-Mail-Adressen gleichzeitig akzeptieren, ermöglichen es, anzugeben, wie mit doppelten Einträgen umgegangen werden soll, die sich auf denselben Eingabesatz beziehen. Verifalia unterstützt einen sicheren Deduplizierungsmodus, der sich stark an die alten IETF-Standards hält, und einen entspannten Modus, der eher dem entspricht, was in den meisten heutigen Mail-Exchanger-Konfigurationen zu finden ist.
Im nächsten Beispiel zeigen wir, wie Sie eine Liste von E-Mail-Adressen importieren und überprüfen und doppelte Einträge markieren, indem Sie den entspannten Deduplizierungsmodus verwenden:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) , deduplication : DeduplicationMode . Relaxed ) ;
Verifalia löscht abgeschlossene E-Mail-Verifizierungsaufträge automatisch gemäß der auf Kontoebene definierten Datenaufbewahrungsrichtlinie, die gegebenenfalls auf Benutzerebene außer Kraft gesetzt werden kann: Diese Einstellungen können im Verifalia-Kundenbereich konfiguriert werden.
Es ist auch möglich, eine Richtlinie zur Datenaufbewahrung pro Auftrag festzulegen, die die Gültigkeitsdauer eines übermittelten E-Mail-Verifizierungsauftrags regelt. Verwenden Sie dazu die SubmitAsync()
Methodenüberladungen, die entweder eine ValidationRequest
oder eine FileValidationRequest
Instanz akzeptieren und ihre Retention
Eigenschaft entsprechend initialisieren.
So kann man beispielsweise bei der Verifizierung einer E-Mail-Adresse eine Datenaufbewahrungsrichtlinie von 10 Minuten festlegen:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new ValidationRequest ( new [ ]
{
"[email protected]"
} )
{
Retention = TimeSpan . FromMinutes ( 10 )
} ) ;
Standardmäßig sendet die SubmitAsync()
-Methode einen E-Mail-Überprüfungsauftrag an Verifalia und wartet auf dessen Abschluss; Der gesamte Vorgang kann je nach Plan des Verifalia-Kontos, der Anzahl der in der Übermittlung enthaltenen E-Mail-Adressen, der angegebenen Qualitätsstufe und anderen Netzwerkfaktoren, einschließlich der Latenz der getesteten E-Mail-Austauscher, einige Zeit in Anspruch nehmen.
Während sie auf den Abschluss eines bestimmten E-Mail-Verifizierungsauftrags wartet, fragt die Bibliothek automatisch die zugrunde liegende Verifalia-API ab, bis die Ergebnisse vorliegen. Standardmäßig versucht es, den mit der Verifalia-API v2.4 eingeführten langen Abfragemodus zu nutzen, der es ermöglicht, die Anzahl der Anfragen zu minimieren und die Verifizierungsergebnisse schneller zu erhalten.
In bestimmten Szenarien (z. B. in einer Microservice-Architektur) kann es jedoch vorzuziehen sein, nicht auf den Abschluss eines Jobs zu warten und stattdessen die Verifalia-API zu bitten, ihn einfach in die Warteschlange zu stellen: In diesem Fall würde die Bibliothek den Job einfach zurückgeben Übersicht (und nicht die Verifizierungsergebnisse) und es ist notwendig, die Verifizierungsergebnisse mit der Methode GetAsync()
abzurufen.
Dazu ist es möglich, WaitOptions.NoWait
als Wert für den Parameter waitOptions
der SubmitAsync()
Methodenüberladungen anzugeben, wie im nächsten Beispiel gezeigt:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) ,
waitOptions : WaitOptions . NoWait ) ;
Console . WriteLine ( $ "Status: { job . Overview . Status } " ) ;
// Status: InProgress
Bei Aufträgen mit einer großen Anzahl von E-Mail-Adressen könnte es nützlich sein, den Fortschritt zu verfolgen, während sie von der E-Mail-Verifizierungs-Engine von Verifalia verarbeitet werden. Zu diesem Zweck ist es möglich, eine Instanz der WaitOptions
-Klasse zu erstellen und einen Handler bereitzustellen, der schließlich Fortschrittsbenachrichtigungen über die Progress
Eigenschaft empfängt.
So definieren Sie einen Fortschrittsbenachrichtigungs-Handler, der den Fortschrittsprozentsatz eines übermittelten Jobs im Konsolenfenster anzeigt:
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 ) ;
} )
} ) ;
Zusammen mit jedem E-Mail-Validierungsauftrag kann eine URL angegeben werden, die Verifalia nach Abschluss des Auftrags aufruft (POST): Diese URL muss das HTTPS- oder HTTP-Schema verwenden und über das Internet öffentlich zugänglich sein. Weitere Informationen zu Abschlussrückrufen finden Sie unter https://verifalia.com/developers#email-validations-completion-callback
Um eine Vervollständigungsrückruf-URL anzugeben, übergeben Sie entweder eine ValidationRequest
oder eine FileValidationRequest
an die SubmitAsync()
Methode und legen Sie deren CompletionCallback
Eigenschaft entsprechend fest, wie im folgenden Beispiel gezeigt:
await verifalia
. EmailValidations
. SubmitAsync ( new ValidationRequest ( new [ ] { "[email protected]" } )
{
CompletionCallback = new CompletionCallback ( "https://your-website-here/foo/bar" )
} ) ;
Beachten Sie, dass Abschlussrückrufe asynchron aufgerufen werden und es bis zu mehreren Sekunden dauern kann, bis Ihre Rückruf-URL aufgerufen wird.
Es ist möglich, einen Job über die Methoden GetAsync()
und GetOverviewAsync()
abzurufen, die jeweils eine Validation
Instanz oder eine ValidationOverview
Instanz für den gewünschten E-Mail-Verifizierungsjob zurückgeben. Dabei wartet die Bibliothek automatisch auf den Abschluss des Auftrags, und es ist möglich, dieses Verhalten anzupassen, indem an die oben genannten Methoden ein waitOptions
Parameter übergeben wird, und zwar auf genau die gleiche Weise, wie für die SubmitAsync()
Methodenüberladungen beschrieben; Weitere Einzelheiten finden Sie im Abschnitt „Warteoptionen“.
Hier ist ein Beispiel, das zeigt, wie ein Job anhand seiner Kennung abgerufen wird:
var jobId = Guid . Parse ( "ec415ecd-0d0b-49c4-a5f0-f35c182e40ea" ) ;
var job = await verifalia . EmailValidations . GetAsync ( jobId ) ;
Diese Bibliothek ermöglicht auch den Export der Einträge eines abgeschlossenen E-Mail-Validierungsauftrags in verschiedene Ausgabeformate über die Methode ExportEntriesAsync()
mit dem Ziel, eine für Menschen lesbare Darstellung der Verifizierungsergebnisse zu generieren.
WARNUNG : Obwohl das Ausgabeschema (Spalten/Beschriftungen/Datenformat) ziemlich vollständig ist, sollten Sie es immer als änderungsvorbehaltlich betrachten: Verwenden Sie stattdessen die Methoden
GetAsync()
/GetEntriesAsync()
wenn Sie sich auf ein stabiles Ausgabeschema verlassen müssen.
Hier ist ein Beispiel, das zeigt, wie ein bestimmter E-Mail-Verifizierungsauftrag als Datei mit durch Kommas getrennten Werten (CSV) exportiert wird:
// 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 löscht abgeschlossene Aufträge automatisch nach einer konfigurierbaren Datenaufbewahrungsrichtlinie (siehe entsprechenden Abschnitt). Aus Datenschutz- und Sicherheitsgründen wird jedoch dringend empfohlen, Ihre abgeschlossenen Aufträge so schnell wie möglich zu löschen. Dazu können Sie die Methode DeleteAsync()
aufrufen und dabei die Job-ID übergeben, die Sie entfernen möchten:
await verifalia
. EmailValidations
. DeleteAsync ( job . Id ) ;
Sobald ein Auftrag gelöscht ist, ist er verschwunden und es gibt keine Möglichkeit, die E-Mail-Validierungsergebnisse abzurufen.
Zu Verwaltungs- und Berichtszwecken möchten Sie möglicherweise eine detaillierte Liste Ihrer vergangenen E-Mail-Validierungsaufträge erhalten. Diese SDK-Bibliothek ermöglicht dies über die ListAsync()
Methode, die eine asynchrone Iteration über eine Sammlung von ValidationOverview
Instanzen ermöglicht (derselbe Typ der Overview
Eigenschaft der Ergebnisse, die von SubmitAsync()
und GetAsync()
zurückgegeben werden).
So durchlaufen Sie Ihre Jobs, vom aktuellsten zum ältesten:
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
// ...
Die
ListAsync()
Methode verwendet die asynchrone Aufzählungsfunktion von C# 8.0 . Informationen zur Unterstützung früherer Sprachen finden Sie in der MethodengruppeListSegmentedAsync()
.
Die ListAsync()
Methode verfügt über dasselbe options
auch über die Möglichkeit, die von der Verifalia-API zurückgegebenen E-Mail-Verifizierungsaufträge zu filtern: Es ist möglich, nach Übermittlungsdatum, Eigentümer und Status der Aufträge zu filtern.
So wiederholen Sie den im obigen Beispiel gezeigten Auflistungsvorgang, wobei dieses Mal nur die Jobs eines bestimmten Benutzers und für einen bestimmten Datumsbereich zurückgegeben werden:
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 )
{
// ...
}
Um das Verifalia-Guthaben für Ihr Konto zu verwalten, können Sie die Credits
-Eigenschaft verwenden, die von der oben erstellten VerifaliaRestClient
-Instanz bereitgestellt wird. Wie beim vorherigen Thema befassen wir uns in den nächsten Absätzen mit den am häufigsten verwendeten Vorgängen. Es wird daher dringend empfohlen, die Bibliothek zu erkunden und in der eingebetteten xmldoc-Hilfe nach weiteren Möglichkeiten zu suchen.
Eine der häufigsten Aufgaben, die Sie möglicherweise für Ihr Konto ausführen müssen, ist das Abrufen der verfügbaren Anzahl an kostenlosen täglichen Credits und Credit-Paketen. Dazu können Sie die Methode GetBalanceAsync()
verwenden, die ein Balance
-Objekt zurückgibt, wie im nächsten Beispiel gezeigt:
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)
Um Credit-Pakete zu Ihrem Verifalia-Konto hinzuzufügen, besuchen Sie https://verifalia.com/client-area#/credits/add.
Um den Credits-Verbrauch für Ihr Konto zu überwachen und vorherzusagen, ermöglicht die Methode ListDailyUsagesAsync()
das Abrufen von Statistiken über die historische Credits-Nutzung und gibt eine asynchron iterierbare Sammlung von DailyUsage
Instanzen zurück. Die Methode ermöglicht auch die Begrenzung des interessierenden Zeitraums durch Übergabe einer DailyUsageListingOptions
Instanz. Elemente werden nur für die Daten zurückgegeben, an denen der Verbrauch (entweder kostenlose Credits, Credit-Pakete oder beides) erfolgt ist.
So rufen Sie den täglichen Credits-Verbrauch der letzten dreißig Tage ab:
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
// ...
Die
ListDailyUsagesAsync()
Methode verwendet die asynchrone Aufzählungsfunktion von C# 8.0 . Informationen zur Unterstützung früherer Sprachen finden Sie in der MethodengruppeListDailyUsagesSegmentedAsync()
.
In diesem Abschnitt wird das Änderungsprotokoll für die aktuelle Hauptversion der Bibliothek aufgeführt. Ältere Versionen finden Sie in den Projektversionen. Aus Gründen der Übersichtlichkeit sind Protokolle für Build- und Revisionsaktualisierungen ausgeschlossen.
Veröffentlicht am 11. Januar 2024
Veröffentlicht am 26. Mai 2023
ToAsyncEnumerableAsync()
Methode behoben, das zuvor in bestimmten Szenarios zu unvollständigen Auflistungen führteVeröffentlicht am 27. Februar 2023
WaitingStrategy
in WaitOptions
umbenannt und letzteres umgestaltet, sodass nun die zugrunde liegenden Polling-Wartezeiten angepasst werden könnenWaitOptions
-Klasse zu ändern).CompletionCallback
Eigenschaft der Klassen ValidationRequest
und FileValidationRequest
verweist jetzt auf eine vollwertige CompletionCallback
-Klasse statt auf einen einfachen Uri