Access denied (iRc=-69) | Community
Skip to main content
Level 4
September 13, 2017
Solved

Access denied (iRc=-69)

  • September 13, 2017
  • 16 replies
  • 10355 views

HI

I am trying to test the SOAP api to do a delivery. I am able to get the session token correctly ( authenticated). When I try to use the session token to do an external call to delivery ( using nms:delivery wsdl) I get access denied error ( iRc= -69).

Any help is appreciated

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by ddphotoFr

Here a full working API call based on default template:

<?xml version='1.0'?>

<SOAP-ENV:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns='urn:xtk:queryDef' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'><SOAP-ENV:Body>

<urn:SubmitDelivery xmlns='urn:nms:delivery' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>

<urn:__sessiontoken xsi:type='xsd:string'></urn:__sessiontoken>

<urn:strScenarioName>mail</urn:strScenarioName>

<urn:elemContent>

<delivery xtkschema="nms:delivery">

  <scheduling validationMode="auto" />

  <targets >

    <deliveryTarget>

      <targetPart>

        <where filteringSchema="nms:recipient">

          <condition expr="@email = 'recipient@domain.com'"/>

        </where>

      </targetPart>

    </deliveryTarget>

  </targets >

  <content>

    <html><source>

<![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD>

</HEAD>

<BODY>foobar</BODY></HTML>

]]></source>

    </html>

  </content>

  <mailParameters mirrorPagePolicy="default" needMirrorPage="0" useDefaultErrorAddress="true">

    <subject><![CDATA[Hello world]]></subject>

    <senderName><![CDATA[]]></senderName>

    <senderAddress><![CDATA[no-reply@domain.com]]></senderAddress>

    <replyAddress><![CDATA[no-reply@domain.com]]></replyAddress>

    <replyName><![CDATA[]]></replyName>

  </mailParameters>

</delivery>

</urn:elemContent>

</urn:SubmitDelivery>

</SP-ENV:Body></SOAP-ENV:Envelope>

This API call send an email to an existing recipient (based on email filtering condition - line 13)

I've also forced to automatic validation do directly start the delivery (not just the analysis) - see line 8

Line 28, i set the subject and following lines, i have added some mandatory field such as the sender & reply addresses

If you have any error, please check in UI to see what is the error.

Damien senderAddress

16 replies

Adobe Employee
September 18, 2017

Campaign main goals is to do targeting on known recipients. But if you won't do that, it's more complex.

As, this API (with externalSource="true") simulates an external file target, you have to do the mapping (in which column the email is, first name, last name, ...). To do this, the easier way is to prepare the mapping within the UI, save the template and use this template in "strScenarioName"

You can have details in the following documentation Email channel

Another way, if your recipients are known. you can do the targeting using a filter condition based on your email instead of using an external source (but as the one with the external source, prepare the template).

Damien

Level 4
September 18, 2017

Thanks for the input but can someone please point me to a correct direction as I am lost.

I just want to be able to test the Soap API to send a delivery or notification while I pass the Recipient email and the Email contents ( html )

If anyone can provide an example I would appreciate. I have set up the delivery templates and I still getting errors when I use the sample that is provided on the documentations.

thanks

ddphotoFrAdobe EmployeeAccepted solution
Adobe Employee
September 18, 2017

Here a full working API call based on default template:

<?xml version='1.0'?>

<SOAP-ENV:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns='urn:xtk:queryDef' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'><SOAP-ENV:Body>

<urn:SubmitDelivery xmlns='urn:nms:delivery' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>

<urn:__sessiontoken xsi:type='xsd:string'></urn:__sessiontoken>

<urn:strScenarioName>mail</urn:strScenarioName>

<urn:elemContent>

<delivery xtkschema="nms:delivery">

  <scheduling validationMode="auto" />

  <targets >

    <deliveryTarget>

      <targetPart>

        <where filteringSchema="nms:recipient">

          <condition expr="@email = 'recipient@domain.com'"/>

        </where>

      </targetPart>

    </deliveryTarget>

  </targets >

  <content>

    <html><source>

<![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD>

</HEAD>

<BODY>foobar</BODY></HTML>

]]></source>

    </html>

  </content>

  <mailParameters mirrorPagePolicy="default" needMirrorPage="0" useDefaultErrorAddress="true">

    <subject><![CDATA[Hello world]]></subject>

    <senderName><![CDATA[]]></senderName>

    <senderAddress><![CDATA[no-reply@domain.com]]></senderAddress>

    <replyAddress><![CDATA[no-reply@domain.com]]></replyAddress>

    <replyName><![CDATA[]]></replyName>

  </mailParameters>

</delivery>

</urn:elemContent>

</urn:SubmitDelivery>

</SP-ENV:Body></SOAP-ENV:Envelope>

This API call send an email to an existing recipient (based on email filtering condition - line 13)

I've also forced to automatic validation do directly start the delivery (not just the analysis) - see line 8

Line 28, i set the subject and following lines, i have added some mandatory field such as the sender & reply addresses

If you have any error, please check in UI to see what is the error.

Damien senderAddress

Level 4
September 18, 2017

I dont know how to thank you enough ! thanks a lot this worked like  a charm

one more question, if I don't want to bounce against recipient data how I can do that?

Again , Thanks a lot as this made my things much clear on how to use the Soap to deliver.

Adobe Employee
September 18, 2017

You may try to replace previous targets node by

  <targets fromExternalSource="true" targetMode="1" noReconciliation="true" addressField="Email" >

    <fileFormat active="true">

      <source format="text" type="text">

        <dataSourceConfig >

          <dataSourceColumn label="Email" name="Email" type="string"/>

        </dataSourceConfig>

      </source>

      <destination type="xtkDataStore"/>

    </fileFormat>

    <externalSource><![CDATA[not-a-repicipient@domain.com]]></externalSource>

  </targets>

It should work without having a recipient in the database with such email address.

But, i'll reiterate my advice. This API should not be called in volume or you may have lot of performance issues.

Level 4
September 18, 2017

genius!!!