SendEmail

Send a client Email Notification.

The following email templates cannot be sent in this way:

  • Automated Password Reset
  • 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

Parameter Type Description Required
action string “SendEmail” Required
messagename string The name of the client email template to send Optional
id int The related id for the type of email template. Eg this should be the client id for a general type email Optional
customtype string The type of custom email template to send (‘general’, ‘product’, ‘domain’, ‘invoice’, ‘support’, ‘affiliate’) Optional
custommessage string The HTML message body to send for a custom email Optional
customsubject string The subject to send for a custom email Optional
customvars array The custom variables to provide to the email template. Can be used for existing and custom emails. Optional

Response Parameters

Parameter Type Description
result string The 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',
        )
    )
);
$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
  • A related ID is required
  • Email Template not found
  • Email Template is disabled
  • Sending Failed. Please see documentation.

Version History

Version Changelog
1.0 Initial Version