Skip to content
Last updated

SendEmail

Send a client Email Notification.

The following email templates cannot be sent in this way:

  • Order Confirmation
  • Password Reset Confirmation
  • Password Reset Validation
  • Quote Accepted
  • Quote Accepted Notification
  • Quote Delivery with PDF
  • Clients Only Bounce Message
  • Replies Only Bounce Message
  • Affiliate Monthly Referrals Report

What you must provide for the Related ID depends upon the type of email being sent. The available options are:

  • General Email Type = Client ID (tblclients.id)
  • Product Email Type = Service ID (tblhosting.id)
  • Domain Email Type = Domain ID (tbldomains.id)
  • Invoice Email Type = Invoice ID (tblinvoices.id)
  • Support Email Type = Ticket ID (tbltickets.id)
  • Affiliate Email Type = Affiliate ID (tblaffiliates.id)

Sending Failed

The generic Sending Failed error response can be caused by one of five possible conditions. They are:

  • Invalid related ID
  • Email template contains no body content after processing (typically a Smarty error)
  • Welcome email requested for product which has none set
  • Hook aborted the sending
  • PHPMailer Sending Error - in this failure condition, an activity log entry will be created recording the error message that occurred

Request Parameters

ParameterTypeDescriptionRequired
actionstring"SendEmail"Required
messagenamestringThe name of the client email template to sendOptional
idintThe related id for the type of email template. Eg this should be the client id for a general type emailOptional
customtypestringThe type of custom email template to send ('general', 'product', 'domain', 'invoice', 'support', 'affiliate')Optional
custommessagestringThe HTML message body to send for a custom emailOptional
customsubjectstringThe subject to send for a custom emailOptional
customvarsarrayThe custom variables to provide to the email template. Can be used for existing and custom emails.Optional

Response Parameters

ParameterTypeDescription
resultstringThe result of the operation: success or error

Example Request (CURL)

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
    http_build_query(
        array(
            'action' => 'SendEmail',
            // See https://developers.whmcs.com/api/authentication
            'username' => 'IDENTIFIER_OR_ADMIN_USERNAME',
            'password' => 'SECRET_OR_HASHED_PASSWORD',
            '//example1' => 'example',
            'messagename' => 'Client Signup Email',
            'id' => '1',
            '//example2' => 'example',
            'customtype' => 'product',
            'customsubject' => 'Product Welcome Email',
            'custommessage' => '<p>Thank you for choosing us</p><p>Your custom is appreciated</p><p>{$custommerge}<br />{$custommerge2}</p>',
            'customvars' => base64_encode(serialize(array("custommerge"=>$populatedvar1, "custommerge2"=>$populatedvar2))),
            'responsetype' => 'json',
        )
    )
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

Example Request (Local API)

$command = 'SendEmail';
$postData = array(
    '//example1' => 'example',
    'messagename' => 'Client Signup Email',
    'id' => '1',
    '//example2' => 'example',
    'customtype' => 'product',
    'customsubject' => 'Product Welcome Email',
    'custommessage' => '<p>Thank you for choosing us</p><p>Your custom is appreciated</p><p>{$custommerge}<br />{$custommerge2}</p>',
    'customvars' => base64_encode(serialize(array("custommerge"=>$populatedvar1, "custommerge2"=>$populatedvar2))),
);
$adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later

$results = localAPI($command, $postData, $adminUsername);
print_r($results);

Example Response JSON

{
    "result": "success"
}

Error Responses

Possible error condition responses include:

  • You must provide either an existing email template name or a custom message type
  • Invalid message type provided
  • A subject is required for a custom message
  • A message body is required for a custom message
  • The custom variables you provided are invalid.
  • A related ID is required
  • Email Template not found
  • Email Template is disabled
  • Sending Failed. Please see documentation.

Version History

VersionChangelog
1.0Initial Version