Exportieren von Abonnenten – ExportSubscribers

RequestParameter: SubscriberExportRequest
ResponseParameter: SubscriberExportResponse

Um Abonnenten aus mailworx zu exportieren wird die Methode ExportSubscribers verwendet. Der Request-Parameter beinhaltet Informationen darüber, welche Abonnenten exportiert werden sollen. Hier kann die Guid der Abonnentengruppe angegeben werden, welchem die Abonnenten, die exportiert werden sollen, entsprechen müssen. Diese Guid ist Nullable. Wird sie nicht angegeben, so werden alle Abonnenten exportiert.

Alternativ zur Angabe einer Abonnentengruppe können auch Conditions festgelegt werden. Diese setzen sich aus einem Abonnentenfeld, einem Vergleichsoperator und einem Vergleichswert zusammen. Bei den Abonnentenfeldern kann es sich auch um Metafelder handeln. Unterstützt werden zurzeit die Metafelder "status", "smsstatus", "optin", "mailformat" und "regdate". Alle angegebenen Conditions werden ausschließlich mit „und“ verknüpft, dh es müssen alle Conditions zutreffen. Hinweis: Wird eine Abonnentengruppe angegeben, so werden sämtliche Conditions ignoriert.

Des Weiteren beinhaltet der Request-Parameter ein Array von Abonnentenfeldern, welche exportiert werden sollen, also welche Daten eines Abonnenten exportiert werden sollen.

 

Die Methode liefert ein Array von Subscriber, welche entsprechende Metadaten (Mailformat, OptIn (TRUE=Angemeldet), Registrierungsdatum, den Status (aktiviert oder inaktiv), die Sprache des Abonnenten) enthalten und des Weiteren auch die Werte für die gewünschten Abonnentenfelder.

Die in mailworx vorhandenen Abonnentenfelder können mit der Methode GetSubscriberFields ausgelesen werden.

Codebeispiel
//create an instance, set security context and language
MailworxWebServiceAgent agent = new MailworxWebServiceAgent();
SubscriberExportRequest request = new SubscriberExportRequest();
request.SecurityContext = GetSecurityContext();
request.Language = "DE";
request.ProfileGuid = Guid.Empty; //Has to be set correct
//Get all custom subscriber field and all meta fields
request.Fields = GetAllSubscriberFields(agent, FieldType.CustomInformation | FieldType.MetaInformation);
agent.TimeOut = 3600000; //Set timeout to 1 hour
//Export the subscribers -> This can take quite a long time!
SubscriberExportResponse response = agent.ExportSubscribers(request);
foreach (Subscriber s in response.Subscribers) {
	//meta information
	Console.WriteLine("Guid: " + s.Guid);
	Console.WriteLine("RegDate: " + s.RegistrationDate.GetValueOrDefault().ToShortDateString());
	Console.WriteLine("Mailformat: " + s.Mailformat.GetValueOrDefault());
	Console.WriteLine("OptIn: " + s.OptIn.GetValueOrDefault().ToString());
	Console.WriteLine("Status: " + s.Status.GetValueOrDefault());
	//write the subscriber data (Firstname, Lastname, Salutation, E-Mail,…)
	if (s.Fields != null) {
		for (int i = 0; i < s.Fields.Length; i++) {
			//Write name: value  Vorname: Bernhard
			Console.WriteLine(s.Fields[i].DisplayName + ": " + s.Fields[i].UntypedValue);
		}
	}
}
}