Automate Postmark Integration Tasks from PowerShell

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
Are you in search of a quick and easy way to access Postmark data from PowerShell? This article demonstrates how to utilize the Postmark Cmdlets for tasks like connecting to Postmark data, automating operations, downloading data, and more.

The CData API Driver for ADO.NET is a standard ADO.NET Provider that make it easy to accomplish data cleansing, normalization, backup, and other integration tasks by enabling real-time access to Postmark.

ADO.NET Provider

The ADO.NET Provider provides a SQL interface for Postmark; this tutorial shows how to use the Provider to retrieve Postmark data.

Once you have acquired the necessary connection properties, accessing Postmark data in PowerShell can be enabled in three steps.

Using API Key Authentication

Postmark uses server API tokens to authenticate requests. Each Postmark server has its own API token, which controls access to messages, bounces, templates, and statistics associated with that server.

To obtain your Server API Token, log in to your Postmark account and navigate to the server you want to connect to. Go to API Tokens under the server settings and copy the token labeled Server API token.

After setting the following connection properties, you are ready to connect:

  • AuthScheme: Set this to APIKey.
  • APIKey: Set this to your Postmark Server API Token. This value is sent as the X-Postmark-Server-Token header on every request.

Example connection string:

Profile=C:\profiles\Postmark.apip;AuthScheme=APIKey;ProfileSettings="APIKey=your-server-api-token"

Connecting to Postmark

Once the authentication is configured, you can connect to Postmark and query data from any of the available tables such as OutboundMessages, Bounces, and Templates.

  1. Load the provider's assembly:

    [Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData API Driver for ADO.NET\lib\System.Data.CData.API.dll")
        
  2. Connect to Postmark:

     
    $conn= New-Object System.Data.CData.API.APIConnection("Profile=C:\profiles\Postmark.apip;AuthScheme=APIKey;ProfileSettings="APIKey=your-server-api-token"")
    $conn.Open()
    
  3. Instantiate the APIDataAdapter, execute an SQL query, and output the results:

    $sql="SELECT ,  from Bounces"
    
    $da= New-Object System.Data.CData.API.APIDataAdapter($sql, $conn)
    $dt= New-Object System.Data.DataTable
    $da.Fill($dt)
    
    $dt.Rows | foreach {
    	Write-Host $_. $_.
    }
      

Ready to get started?

Connect to live data from Postmark with the API Driver

Connect to Postmark