I have created a custom form that will post to a controller, where it will then send an email via the following snippet in my post action:

    
    $to = "[email protected]";
    $subject = "Vish";
    $body = "<img src='logo.jpg' >";
    $body .= "<p>Name : " . $name . "<p>";
    $body .= "<p>Email  : " . $email . "<p>";
    $body .= "<p>Address Line 1 : " . $address_line_1 . "<p>";
    $body .= "<p>Address Line 2 : " . $address_line_2 . "<p>";
    $body .= "<p>Address Line 3 : " . $address_line_3 . "<p>";
    $body .= "<p>City : " . $city . "<p>";
    $body .= "<p>Post Code : " . $postcode . "<p>";
    $body .= "<p>Country : " . $country . "<p>";
    $body .= "<br /><p>Kind regards,</p><p>vish</p>"; 
    $from = '[email protected]';
                $mail = Mage::getModel('core/email');
                $mail->setToName("Vish");
                $mail->setToEmail($to);
                $mail->setBody($body);
                $mail->setSubject($subject);
                $mail->setFromEmail($from);
                $mail->setType('html');
                $mail->setBodyHTML($body);

                $mail->send();
This works well, but I am not sure if it is the correct way to do this or if there is a better standardised way?

I have seen and attempted this way but the email body is empty:

        $emailTemplate  = Mage::getModel('core/email_template')
    						->loadDefault('vish_email_template');
    
    //Getting the Store E-Mail Sender Name.
    $senderName = Mage::getStoreConfig('trans_email/ident_general/name');
    
    //Getting the Store General E-Mail.
    $senderEmail = Mage::getStoreConfig('trans_email/ident_general/email');
    
    //Variables for Confirmation Mail.
    $emailTemplateVariables = array();
    $emailTemplateVariables['name'] = $name;
    $emailTemplateVariables['email'] = $email;
    
    //Appending the Custom Variables to Template.
    $processedTemplate = $emailTemplate->getProcessedTemplate($emailTemplateVariables);
    
    //Sending E-Mail to Customers.
    $mail = Mage::getModel('core/email')
     ->setToName($senderName)
     ->setToEmail($email)
     ->setBody($processedTemplate)
     ->setSubject($subject)
     ->setFromEmail($senderEmail)
     ->setFromName($senderName)
     ->setType('html');
     try{
     //Confimation E-Mail Send
     $mail->send();
     }
     catch(Exception $error)
     {
     Mage::getSingleton('core/session')->addError($error->getMessage());
     }

I have got it working rather splendidly via:

    	 

    $mailTemplate = Mage::getModel('core/email_template');
                    /* @var $mailTemplate Mage_Core_Model_Email_Template */
                    $mailTemplate->setDesignConfig(array('area' => 'frontend'))
                        ->setReplyTo($post['email'])
                        ->setType('Html')
                        ->sendTransactional(
                            Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE),
                            Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
                            Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT),
                            "Vish Sales",
                            array('data' => $postObject)
                        );
    
                    if (!$mailTemplate->getSentSuccess()) {
                        throw new Exception();
                    } else{
    	                $subject = "Vish Request";
    
    				
    				$body = "
    <p>Thank you for requesting our new catalogue, which will be posted out to you immediately.</p>"
    
    				$sender = Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER);
    				$mail = Mage::getModel('core/email');
    				$mail->setToName($name);
    				$mail->setFromName("no-reply");
    				$mail->setToEmail($email);
    				$mail->setReplyTo('[email protected]');
    				$mail->setBody($body);
    				$mail->setSubject($subject);
    				$mail->setFromEmail(Mage::getStoreConfig('trans_email/ident_' . $sender . '/email'));
    				$mail->setType('html');
    				$mail->setBodyHTML($body);
    
    				$mail->send();
                    }

However, I am not sure if the section below is done in a correct manner:

    

        $subject = "Vish Request";
    
    
                    $body = "
    <p>Thank you for requesting our new catalogue, which will be posted out to you immediately.</p>"
    
                    $sender = Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER);
                    $mail = Mage::getModel('core/email');
                    $mail->setToName($name);
                    $mail->setFromName("no-reply");
                    $mail->setToEmail($email);
                    $mail->setReplyTo('[email protected]');
                    $mail->setBody($body);
                    $mail->setSubject($subject);
                    $mail->setFromEmail(Mage::getStoreConfig('trans_email/ident_' . $sender . '/email'));
                    $mail->setType('html');
                    $mail->setBodyHTML($body);
    
                    $mail->send();

Thus, could someone confirm if this is an acceptable way or how could I do the same as the above but for multiple templates?