with Elastic Email and OpenSRS?
Emit new event when a new contact is added to a mailing list. See the documentation
Emit new event when the DNS/ZONE check has passed or failed at the registry. See the documentation
Emit new event when a recipient clicks a link in an email. See the documentation
Emit new event for each new domain registration. See the documentation
Emit new event when a recipient opens an email. See the documentation
Adds a new contact to a mailing list. See the documentation
Initiate a domain transfer to OpenSRS. See the documentation
Sends an email to one or more recipients. See the documentation
Unsubscribes a contact from future emails. See the documentation
The Elastic Email API allows you to integrate a robust email sending platform into your Pipedream workflows. Use it to send emails, manage contacts, and track campaign statistics. With this API, you can automate email notifications, synchronize subscriber lists, or trigger marketing campaigns based on user actions.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
elastic_email: {
type: "app",
app: "elastic_email",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.elasticemail.com/v2/account/profileoverview`,
headers: {
"X-ElasticEmail-ApiKey": `${this.elastic_email.$auth.api_key}`,
},
})
},
})
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
opensrs: {
type: "app",
app: "opensrs",
}
},
async run({steps, $}) {
const connectionDetails = {
reseller_username: this.opensrs.$auth.reseller_username,
api_key: this.opensrs.$auth.api_key,
api_host_port: this.opensrs.$auth.api_host_port
};
//Payload of the request
const xml = `<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">${this.opensrs.$auth.domain}</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>`;
// Generate signature
const generateSignature = (xml, apiKey) => {
let md5 = crypto.createHash('md5');
md5.update(xml + apiKey);
let firstHash = md5.digest('hex');
md5 = crypto.createHash('md5');
md5.update(firstHash + apiKey);
return md5.digest('hex');
};
const signature = generateSignature(xml, connectionDetails.api_key);
// Prepare and call OpenSRS API
const headers = {
'Content-Type': 'text/xml',
'X-Username': connectionDetails.reseller_username,
'X-Signature': signature
};
return await axios($, {
method: "POST",
url: connectionDetails.api_host_port,
headers,
data: xml
});
},
})