Я думаю, вам нужна магия JavaScript, и поскольку вы уже используете HTML5 canvas, это не должно быть проблемой.
Итак, событие onclick для кнопки отправки, которое отправит ajax-запрос к вашему бэкэнд-скрипту php.
var strDataURI = oCanvas.toDataURL();
// returns "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt..."
Вам просто нужно передать strDataURI в качестве параметра.
Теперь, я думаю, вы должны также сохранить их в своей базе данных, чтобы электронное письмо могло просто содержать этот тег изображения внутри:
<img src="http://www.yourdomain.com/generate_image.php?id=2" alt="Design #2" />
И что скрипт generate_image.php будет делать что-то вроде этого
<?php
header('Cache-control: max-age=2592000');
header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 2592000));
// connect to db here ..
// $id = (int)$_GET['id']; "SELECT youtable WHERE id = '{$id}'"
// and the $image variable should contain "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt..."
list($settings, $encoded_string) = explode(',', $image);
list($img_type, $encoding_method) = explode(';', substr($settings, 5))
header("Content-type: {$img_type}");
if($encoding_method == 'base64')
die(base64_decode($encoded_string)); // stop script execution and print out the image
else { // use another decoding method
}