Take a look at sendPaymentFailedEmail() in /app/code/core/Mage/Checkout/Helper/Data.php which is call from /app/code/core/Mage/Checkout/controllers/OnepageController.php
The only email variables are :
array(
'reason' => $message,
'checkoutType' => $checkoutType,
'dateAndTime' => Mage::app()->getLocale()->date(),
'customer' => $checkout->getCustomerFirstname() . ' ' . $checkout->getCustomerLastname(),
'customerEmail' => $checkout->getCustomerEmail(),
'billingAddress' => $checkout->getBillingAddress(),
'shippingAddress' => $checkout->getShippingAddress(),
'shippingMethod' => Mage::getStoreConfig('carriers/'.$shippingMethod.'/title'),
'paymentMethod' => Mage::getStoreConfig('payment/'.$paymentMethod.'/title'),
'items' => nl2br($items), **<-- display items in your template**
'total' => $total
)
Since there are no observer trigger your only option would be to do a rewrite and modify this code below accordingly to include sku
foreach ($checkout->getAllVisibleItems() as $_item) {
/* @var $_item Mage_Sales_Model_Quote_Item */
$items .= $_item->getProduct()->getName() . ' x '. $_item->getQty() . ' '
. $checkout->getStoreCurrencyCode() . ' '
. $_item->getProduct()->getFinalPrice($_item->getQty()) . "\n";
}