After a recent Magento site migration from one host to another, I noticed that I wasn't getting emails from Magento after testing the newsletter sign-up and order confirmation. As it was a new client with a rather complex email arrangement, it was best to determine if the emails were breaking due to a server configuration issue or something else entirely. I found this great script (credit: https://gielberkers.com/test-e-mails-working-magento/) which does exactly what I needed. No need to reinvent the wheel! Enjoy.
<?php
// Magento e-mail tester.
if (!isset($_GET['email'])) {
echo 'usage: [email protected]';
die;
}
// Send mail, the Magento way:
require_once('app/Mage.php');
Mage::app();
// Create a simple contact form mail:
$emailTemplate = Mage::getModel('core/email_template')
->loadDefault('contacts_email_email_template');
$data = new Varien_Object();
$data->setData(
array(
'name' => 'Foo',
'email' => '[email protected]',
'telephone' => '123-4567890',
'comment' => 'This is a test'
)
);
$vars = array('data' => $data);
// Set sender information:
$storeId = Mage::app()->getStore()->getId();
$emailTemplate->setSenderEmail(
Mage::getStoreConfig('trans_email/ident_general/email', $storeId));
$emailTemplate->setSenderName(
Mage::getStoreConfig('trans_email/ident_general/name', $storeId));
$emailTemplate->setTemplateSubject('Test mail');
// Send the mail:
$output = $emailTemplate->send($_GET['email'], null, $vars);
var_dump($output);