Eigenes Double Opt-In

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

Antworten
DiGa1988
Beiträge: 8
Registriert: 10.12.2013, 15:13

Re: Eigenes Double Opt-In

Beitrag von DiGa1988 » 06.12.2018, 14:07

Vielen Dank, jetzt klappt alles! :D

Super Support hier!

Benutzeravatar
mirko
Beiträge: 21428
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Eigenes Double Opt-In

Beitrag von mirko » 06.12.2018, 10:56

mit den Gruppen hat das nichts zu tun, die IDs die es nicht gibt, werden ignoriert

Der Aufruf

$api = $_SERVER['DOCUMENT_ROOT'].'/swm/api/api.php';

ist falsch, das muss eine URL sein und nicht ein Verzeichnis, statt $_SERVER['DOCUMENT_ROOT'] entsprechend http(s)://domain usw. angeben.

DiGa1988
Beiträge: 8
Registriert: 10.12.2013, 15:13

Re: Eigenes Double Opt-In

Beitrag von DiGa1988 » 05.12.2018, 14:48

Hallo,

ich habe das Beispiel aus der nusoap_sample.php für mich angepasst:

Code: Alles auswählen

		if($_GET['nl']==="1"){
			require_once($_SERVER['DOCUMENT_ROOT']."/swm/api/nusoap/lib/nusoap.php");


			# url to api.php
			$api = $_SERVER['DOCUMENT_ROOT'].'/swm/api/api.php';
			$uri = $api.'?wsdl';

			// set your api key here
			$apikey = '<APIKEYMEINESBENUTZERS>';

			$client = new nusoap_client($api);
			$client->soap_defencoding = 'UTF-8';# use UTF-8!
			$err = $client->getError();
			if ($err) {
				echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
			}

			# set APIToken
			$client->setHeaders(array('APIToken' => $apikey));

			# sample: api_Mailinglists.api_createMailingList
			# $params = array("apiName" => "Test list", "apiDescription" => "", "apiSubscriptionType" => "SingleOptIn", "apiUnsubscriptionType" => "DoubleOptOut", "apiOptInConfirmationMailFormat" => "PlainText", "apiOptOutConfirmationMailFormat" => "PlainText");

			# sample: api_Recipients.api_createRecipient
			# $params = array("apiMailingListId" => 1, "apiData" => array( "u_EMail" => "webmaster@johndoe.com", "u_LastName" => "Doe", "u_FirstName" => "John" ), "apiarrayGroupsIds" => array(), "apiUseDoubleOptIn" => false);

			$params = array("apiMailingListId" => 2, "apiData" => array( "u_EMail" => $validate_email ), "apiarrayGroupsIds" => array(55), "apiUseDoubleOptIn" => false, "apiFormId" => 2);
			$result = $client->call('api_Recipients.api_createRecipient', $params, '', '', false, true);

?>
<!---
<?php
			if ($client->fault) {
				echo '<h2>Fault</h2><pre>';
				print_r($result);
				echo '</pre>';
			} else {
				$err = $client->getError();
				if ($err) {
					// Display the error
					echo '<h2>Error</h2><pre>' . $err . '</pre>';
				} else {
					// Display the result
					echo '<h2>Result</h2><pre>';
					var_dump($result);
					echo '</pre>';
				}
			}
			echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
			echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
			echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
?>
-->
<?php
		}
Ich habe angenommen, dass der Wert des Filters (entnommen aus dem input-Tag) auf der Seite "Empfänger anzeigen" der Gruppe entspricht, dessen Wert in "apiarrayGroupsIds" angegeben werden muss.

Ich erhalte jedoch folgenden Fehler: no transport found, or selected transport is not yet supported!
(Das, was unter "Debug" steht, kann ich auch gerne noch posten, wenn notwendig. Hier müsste ich dann nur API-Key etc. entfernen.)

Benutzeravatar
mirko
Beiträge: 21428
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Eigenes Double Opt-In

Beitrag von mirko » 04.12.2018, 13:06

das geht nur, wenn man die API verwendet werdet, ist in der Hilfe beschrieben auch online https://newsletter-software-php-script. ... ap_api.htm oder https://newsletter-software-php-script. ... on_api.htm

alternativ die Empfängerliste ändern und auf dem Reiter Anmeldung das Double-Opt-In auf Single-Opt-In ändern, das ist nicht empfehlenswert

DiGa1988
Beiträge: 8
Registriert: 10.12.2013, 15:13

Eigenes Double Opt-In

Beitrag von DiGa1988 » 04.12.2018, 12:48

Hallo,

ich trage über ein Formular Kundendaten in eine Datenbank ein (PHP) und schreibe hier schon eine E-Mail zur Bestätigung der E-Mail-Adresse. Nun möchte ich in diesem Formular abfragen, ob die Kunden auch den Newsletter bestellen möchten. Bisher habe ich es so gelöst, dass ich beim Klicken auf den Link in meiner E-Mail, der ein "&nl=1" enthält, wenn der Kunde den Newsletter erhalten möchte, den Kunden per Script in die entsprechende Empfängerliste eintrage:

Code: Alles auswählen

		if($_GET['nl']==="1"){
			$ch = curl_init('https://<PFADZUSUPERWEBMAILER>/nl.php');
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, 'u_EMail='.$validate_email.'&MailingListId=2&FormId=2&FormEncoding=utf-8&Action=subscribe');
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
			curl_setopt($ch, CURLOPT_HEADER, 0);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_exec($ch);
		}
Mit "Action=subscribe" wird hier aber erneut eine E-Mail versendet, was ich jedoch möglichst vermeiden möchte. Für "Action=subscribeconfirm" fehlt mir der entsprechende Key.

Es sind bestimmt Möglichkeiten vorhanden, wie man dieses Problem sinnvoller lösen kann, oder? Bisher habe ich hierzu nicht gefunden.

Für Hilfe wäre ich dankbar.

Grüße

Antworten