Send email
Typically, PingOne Advanced Identity Cloud sends emails from journeys, scripts, or other backend processes. You can also send test emails using the REST API.
Send email using the API
To test your configuration, use the REST API, sending an HTTP POST to /openidm/external/email
. Pass the message parameters as part of the POST payload, URL encoding the content, as necessary.
The following example sends a test email using the REST API:
curl \ --header "Authorization: Bearer <access-token>" \ --header "Content-Type: application/json" \ --header "Accept-API-Version: resource=1.0" \ --request POST \ --data '{ "from":"openidm@example.com", "to":"your_email@example.com", "subject":"Test", "body":"Test"}' \ "https://<tenant-env-fqdn>/openidm/external/email?_action=send" { "status": "OK", "message": "Email sent" }
By default, a response is returned only when the email relay has completed. To return a response immediately, without waiting for the email relay to finish, include the parameter waitForCompletion=false
in the REST call. Use this option only if you do not need to verify that the email was accepted by the SMTP server. For example:
curl \ --header "Authorization: Bearer <access-token>" \ --header "Content-Type: application/json" \ --header "Accept-API-Version: resource=1.0" \ --request POST \ --data '{ "from":"openidm@example.com", "to":"your_email@example.com", "subject":"Test", "body":"Test"}' \ "https://<tenant-env-fqdn>/openidm/external/email?_action=send&waitForCompletion=false" { "status": "OK", "message": "Email submitted" }
Send email templates using the API
You can send an email template using the sendTemplate
action. For example:
curl \ --header "Authorization: Bearer <access-token>" \ --header "Content-Type: application/json" \ --header "Accept-API-Version: resource=1.0" \ --request POST \ --data '{ "templateName":"welcome", "to":"your_email@example.com", "cc":"alt_email@example.com", "bcc":"bigBoss_email@example.com"}' \ "https://<tenant-env-fqdn>/openidm/external/email?_action=sendTemplate" { "status": "OK", "message": "Email sent" }
Send email using a script
You can send email using the resource API functions, with the external/email
context. Learn more about these functions in openidm.action. In the following example, params
is an object that contains the POST parameters:
var params = new Object();
params.from = "openidm@example.com";
params.to = "your_email@example.com";
params.cc = "bjensen@example.com,scarter@example.com";
params.subject = "OpenIDM recon report";
params.type = "text/html";
params.body = "<html><body><p>Recon report follows...</p></body></html>";
openidm.action("external/email", "send", params);
Send email templates using a script
You can send an email template using the sendTemplate
action. For example:
var params = new Object();
params.templateName = "welcome";
params.to = "your_email@example.com";
params.cc = "bjensen@example.com,scarter@example.com";
params.bcc = "bigBoss@example.com";
openidm.action("external/email", "sendTemplate", params);
var params = new Object();
params.templateName = "myTemplate";
params.to = "hgale815@example.com";
params.object = { "givenName": newObject.givenName, "sn": newObject.sn, "mail": newObject.mail, "country": newObject.country };
openidm.action("external/email", "sendTemplate", params);
Email templates utilize Handlebar expressions to reference object data dynamically. For example, to reference the
|