Version Notes
1.4.3 - Added Amazon SES support, experimental only
1.4.2 - Updated Email_Template to work with Magento 1.5.
1.4.1 - Missed one place where a non-standard basedir will trip up the self test and add extra exception logging.
1.4.0 - several bug fixes and update to support Magento 1.4.2
1.3.3 - For the love of god Magento Connect - please let me upload this!
1.3.2 - For the love of god Magento Connect - please let me upload this!
1.3.1 - bug fix for the Observer.php include.
1.3 - add test of _actual email sending and add From: header on test email (fixes an issue for some SMTP servers)
1.1.1 - Bug fix release
1.1.0 - Added email logging and event firing
1.0.4 - No changes, just adding a new point release in the hope that magento connect will work...
1.0.3 - No changes, just adding a new point release in the hope that magento connect will work...
1.0.2 - Add support for multiple gmail or Google Apps accounts to address the 500 email limit Google imposes.
1.0.1 - Re release of the SMTP Pro extension as a combined SMTP + Google apps/Gmail extension.
Release Info
Developer | Magento Core Team |
Extension | ASchroder_SMTPPro |
Version | 1.4.3 |
Comparing to | |
See all releases |
Code changes from version 1.4.2 to 1.4.3
- app/code/community/Aschroder/SMTPPro/Helper/Data.php +20 -1
- app/code/community/Aschroder/SMTPPro/Model/Observer.php +1 -0
- app/code/community/Aschroder/SMTPPro/Model/System/Config/Source/Smtp/Option.php +2 -1
- app/code/community/Aschroder/SMTPPro/controllers/IndexController.php +32 -19
- app/code/community/Aschroder/SMTPPro/etc/config.xml +1 -1
- app/code/community/Aschroder/SMTPPro/etc/system.xml +28 -1
- app/code/community/Aschroder/SMTPPro/lib/AmazonSES.php +149 -0
- package.xml +7 -5
@@ -30,6 +30,9 @@ class Aschroder_SMTPPro_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
30 |
public function getGoogleApps() {
|
31 |
return Mage::getStoreConfig('system/smtppro/option') == "google";
|
32 |
}
|
|
|
|
|
|
|
33 |
|
34 |
public function getSMTP() {
|
35 |
return Mage::getStoreConfig('system/smtppro/option') == "smtp";
|
@@ -88,7 +91,7 @@ class Aschroder_SMTPPro_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
88 |
|
89 |
$transport = new Zend_Mail_Transport_Smtp($host, $config);
|
90 |
|
91 |
-
} else {
|
92 |
|
93 |
$email = explode(",", Mage::getStoreConfig('system/googlesettings/email', $id));
|
94 |
|
@@ -112,6 +115,22 @@ class Aschroder_SMTPPro_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
112 |
$config = array('ssl' => 'tls', 'port' => 587, 'auth' => 'login', 'username' => $email, 'password' => $password);
|
113 |
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
|
114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
|
117 |
Mage::log("Returning transport");
|
30 |
public function getGoogleApps() {
|
31 |
return Mage::getStoreConfig('system/smtppro/option') == "google";
|
32 |
}
|
33 |
+
public function getSES() {
|
34 |
+
return Mage::getStoreConfig('system/smtppro/option') == "ses";
|
35 |
+
}
|
36 |
|
37 |
public function getSMTP() {
|
38 |
return Mage::getStoreConfig('system/smtppro/option') == "smtp";
|
91 |
|
92 |
$transport = new Zend_Mail_Transport_Smtp($host, $config);
|
93 |
|
94 |
+
} else if($this->getGoogleApps()) {
|
95 |
|
96 |
$email = explode(",", Mage::getStoreConfig('system/googlesettings/email', $id));
|
97 |
|
115 |
$config = array('ssl' => 'tls', 'port' => 587, 'auth' => 'login', 'username' => $email, 'password' => $password);
|
116 |
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
|
117 |
|
118 |
+
} else if($this->getSES()) {
|
119 |
+
|
120 |
+
// Big thanks to Christopher Valles
|
121 |
+
// https://github.com/christophervalles/Amazon-SES-Zend-Mail-Transport
|
122 |
+
include_once Mage::getBaseDir() . '/app/code/community/Aschroder/SMTPPro/lib/AmazonSES.php';
|
123 |
+
|
124 |
+
$transport = new App_Mail_Transport_AmazonSES(
|
125 |
+
array(
|
126 |
+
'accessKey' => Mage::getStoreConfig('system/sessettings/aws_access_key', $id),
|
127 |
+
'privateKey' => Mage::getStoreConfig('system/sessettings/aws_private_key', $id)
|
128 |
+
)
|
129 |
+
);
|
130 |
+
|
131 |
+
} else {
|
132 |
+
Mage::log("Disabled, or no matching transport");
|
133 |
+
return null;
|
134 |
}
|
135 |
|
136 |
Mage::log("Returning transport");
|
@@ -23,6 +23,7 @@ class Aschroder_SMTPPro_Model_Observer {
|
|
23 |
}
|
24 |
|
25 |
// For the self test, if we're sending the contact form notify the self test class
|
|
|
26 |
if($event->getTemplate() == "contacts_email_email_template") {
|
27 |
include_once Mage::getBaseDir() . "/app/code/community/Aschroder/SMTPPro/controllers/IndexController.php";
|
28 |
Aschroder_SMTPPro_IndexController::$CONTACTFORM_SENT = true;
|
23 |
}
|
24 |
|
25 |
// For the self test, if we're sending the contact form notify the self test class
|
26 |
+
Mage::log("template=" . $event->getTemplate());
|
27 |
if($event->getTemplate() == "contacts_email_email_template") {
|
28 |
include_once Mage::getBaseDir() . "/app/code/community/Aschroder/SMTPPro/controllers/IndexController.php";
|
29 |
Aschroder_SMTPPro_IndexController::$CONTACTFORM_SENT = true;
|
@@ -13,7 +13,8 @@ class Aschroder_SMTPPro_Model_System_Config_Source_Smtp_Option
|
|
13 |
return array(
|
14 |
"disabled" => Mage::helper('adminhtml')->__('Disabled'),
|
15 |
"google" => Mage::helper('adminhtml')->__('Google Apps/Gmail'),
|
16 |
-
"smtp" => Mage::helper('adminhtml')->__('SMTP')
|
|
|
17 |
);
|
18 |
}
|
19 |
}
|
13 |
return array(
|
14 |
"disabled" => Mage::helper('adminhtml')->__('Disabled'),
|
15 |
"google" => Mage::helper('adminhtml')->__('Google Apps/Gmail'),
|
16 |
+
"smtp" => Mage::helper('adminhtml')->__('SMTP'),
|
17 |
+
"ses" => Mage::helper('adminhtml')->__('SES (experimental)')
|
18 |
);
|
19 |
}
|
20 |
}
|
@@ -33,35 +33,46 @@ class Aschroder_SMTPPro_IndexController
|
|
33 |
|
34 |
|
35 |
$googleapps = Mage::helper('smtppro')->getGoogleApps();
|
|
|
|
|
36 |
|
37 |
if($googleapps) {
|
38 |
$msg = $msg . "<br/>Using Google Apps/Gmail configuration options";
|
39 |
$host = "smtp.gmail.com";
|
40 |
$port = 587;
|
41 |
-
} else {
|
42 |
$msg = $msg . "<br/>Using SMTP configuration options";
|
43 |
$host = Mage::getStoreConfig('system/smtpsettings/host', $websiteModel->getId());
|
44 |
$port = Mage::getStoreConfig('system/smtpsettings/port', $websiteModel->getId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
}
|
46 |
|
47 |
|
48 |
-
$
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
|
|
|
|
65 |
}
|
66 |
|
67 |
$to = Mage::getStoreConfig('contacts/email/recipient_email', $websiteModel->getId());
|
@@ -115,8 +126,10 @@ class Aschroder_SMTPPro_IndexController
|
|
115 |
}
|
116 |
|
117 |
// Now we test that the actual core overrides are occuring as expected.
|
118 |
-
// We trigger the
|
119 |
|
|
|
|
|
120 |
self::$CONTACTFORM_SENT = false;
|
121 |
$this->_sendTestContactFormEmail();
|
122 |
|
33 |
|
34 |
|
35 |
$googleapps = Mage::helper('smtppro')->getGoogleApps();
|
36 |
+
$smtpEnabled = Mage::helper('smtppro')->getSMTP();
|
37 |
+
$sesEnabled = Mage::helper('smtppro')->getSES();
|
38 |
|
39 |
if($googleapps) {
|
40 |
$msg = $msg . "<br/>Using Google Apps/Gmail configuration options";
|
41 |
$host = "smtp.gmail.com";
|
42 |
$port = 587;
|
43 |
+
} else if ($smtpEnabled) {
|
44 |
$msg = $msg . "<br/>Using SMTP configuration options";
|
45 |
$host = Mage::getStoreConfig('system/smtpsettings/host', $websiteModel->getId());
|
46 |
$port = Mage::getStoreConfig('system/smtpsettings/port', $websiteModel->getId());
|
47 |
+
} else if ($sesEnabled) {
|
48 |
+
// no connectivity test - either disabled or SES...
|
49 |
+
$msg = $msg . "<br/> Connection to Amazon SES server not tested (...yet)";
|
50 |
+
Mage::log("skipped, SES.");
|
51 |
+
} else {
|
52 |
+
$msg = $msg . "<br/> extension disabled, cannot test outbound connectivity";
|
53 |
+
Mage::log("skipped, disabled.");
|
54 |
}
|
55 |
|
56 |
|
57 |
+
if ($googleapps || $smtpEnabled) {
|
58 |
+
$fp = false;
|
59 |
+
|
60 |
+
try {
|
61 |
+
$fp = fsockopen($host, $port, $errno, $errstr, 15);
|
62 |
+
} catch ( Exception $e) {
|
63 |
+
// An error will be reported below.
|
64 |
+
}
|
65 |
+
|
66 |
+
Mage::log("Complete");
|
67 |
+
|
68 |
+
if (!$fp) {
|
69 |
+
$success = false;
|
70 |
+
$msg = $msg . "<br/>Failed to connect to SMTP server. Reason: " . $errstr . "(" . $errno . ")";
|
71 |
+
$msg = $msg . "<br/> This extension requires an outbound SMTP connection on port: " . $port;
|
72 |
+
} else {
|
73 |
+
$msg = $msg . "<br/> Connection to Host SMTP server successful.";
|
74 |
+
fclose($fp);
|
75 |
+
}
|
76 |
}
|
77 |
|
78 |
$to = Mage::getStoreConfig('contacts/email/recipient_email', $websiteModel->getId());
|
126 |
}
|
127 |
|
128 |
// Now we test that the actual core overrides are occuring as expected.
|
129 |
+
// We trigger the contact form email, as though a user had done so.
|
130 |
|
131 |
+
Mage::log("Actual contact form submit test...");
|
132 |
+
|
133 |
self::$CONTACTFORM_SENT = false;
|
134 |
$this->_sendTestContactFormEmail();
|
135 |
|
@@ -10,7 +10,7 @@
|
|
10 |
<config>
|
11 |
<modules>
|
12 |
<Aschroder_SMTPPro>
|
13 |
-
<version>1.4.
|
14 |
</Aschroder_SMTPPro>
|
15 |
</modules>
|
16 |
<frontend>
|
10 |
<config>
|
11 |
<modules>
|
12 |
<Aschroder_SMTPPro>
|
13 |
+
<version>1.4.3</version>
|
14 |
</Aschroder_SMTPPro>
|
15 |
</modules>
|
16 |
<frontend>
|
@@ -14,7 +14,7 @@
|
|
14 |
<fields>
|
15 |
<option translate="label comment">
|
16 |
<label>Choose extension option</label>
|
17 |
-
<comment>This will determine
|
18 |
<frontend_type>select</frontend_type>
|
19 |
<source_model>smtppro/system_config_source_smtp_option</source_model>
|
20 |
<sort_order>1</sort_order>
|
@@ -156,6 +156,33 @@
|
|
156 |
</ssl>
|
157 |
</fields>
|
158 |
</smtpsettings>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
</groups>
|
160 |
</system>
|
161 |
</sections>
|
14 |
<fields>
|
15 |
<option translate="label comment">
|
16 |
<label>Choose extension option</label>
|
17 |
+
<comment>This will determine which configuration is used; Gmail/Google Apps, SMTP or the new experimental Amazon SES.</comment>
|
18 |
<frontend_type>select</frontend_type>
|
19 |
<source_model>smtppro/system_config_source_smtp_option</source_model>
|
20 |
<sort_order>1</sort_order>
|
156 |
</ssl>
|
157 |
</fields>
|
158 |
</smtpsettings>
|
159 |
+
<sessettings translate="label" module="smtppro">
|
160 |
+
<label>SMTP Pro Email Amazon SES Settings (experimental)</label>
|
161 |
+
<frontend_type>text</frontend_type>
|
162 |
+
<sort_order>998</sort_order>
|
163 |
+
<show_in_default>1</show_in_default>
|
164 |
+
<show_in_website>1</show_in_website>
|
165 |
+
<show_in_store>0</show_in_store>
|
166 |
+
<comment>These settings are for experimental use of the Amazon AWS SES service. This should not be used on a production server yet, but please do try it out and let me know how you get on.</comment>
|
167 |
+
<fields>
|
168 |
+
<aws_access_key translate="label">
|
169 |
+
<label>Access Key</label>
|
170 |
+
<frontend_type>text</frontend_type>
|
171 |
+
<sort_order>5</sort_order>
|
172 |
+
<show_in_default>1</show_in_default>
|
173 |
+
<show_in_website>1</show_in_website>
|
174 |
+
<show_in_store>0</show_in_store>
|
175 |
+
</aws_access_key>
|
176 |
+
<aws_private_key translate="label">
|
177 |
+
<label>Secret Key</label>
|
178 |
+
<frontend_type>password</frontend_type>
|
179 |
+
<sort_order>10</sort_order>
|
180 |
+
<show_in_default>1</show_in_default>
|
181 |
+
<show_in_website>1</show_in_website>
|
182 |
+
<show_in_store>0</show_in_store>
|
183 |
+
</aws_private_key>
|
184 |
+
</fields>
|
185 |
+
</sessettings>
|
186 |
</groups>
|
187 |
</system>
|
188 |
</sections>
|
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Amazon Simple Email Service (SES) connection object
|
5 |
+
*
|
6 |
+
* Integration between Zend Framework and Amazon Simple Email Service
|
7 |
+
*
|
8 |
+
* @category Zend
|
9 |
+
* @package Zend_Mail
|
10 |
+
* @subpackage Transport
|
11 |
+
* @author Christopher Valles <info@christophervalles.com>
|
12 |
+
* @license http://framework.zend.com/license/new-bsd New BSD License
|
13 |
+
*/
|
14 |
+
class App_Mail_Transport_AmazonSES extends Zend_Mail_Transport_Abstract
|
15 |
+
{
|
16 |
+
/**
|
17 |
+
* Template of the webservice body request
|
18 |
+
*
|
19 |
+
* @var string
|
20 |
+
*/
|
21 |
+
protected $_bodyRequestTemplate = 'Action=SendRawEmail&Source=%s&%s&RawMessage.Data=%s';
|
22 |
+
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Remote smtp hostname or i.p.
|
26 |
+
*
|
27 |
+
* @var string
|
28 |
+
*/
|
29 |
+
protected $_host;
|
30 |
+
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Amazon Access Key
|
34 |
+
*
|
35 |
+
* @var string|null
|
36 |
+
*/
|
37 |
+
protected $_accessKey;
|
38 |
+
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Amazon private key
|
42 |
+
*
|
43 |
+
* @var string|null
|
44 |
+
*/
|
45 |
+
protected $_privateKey;
|
46 |
+
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Constructor.
|
50 |
+
*
|
51 |
+
* @param string $endpoint (Default: https://email.us-east-1.amazonaws.com)
|
52 |
+
* @param array|null $config (Default: null)
|
53 |
+
* @return void
|
54 |
+
* @throws Zend_Mail_Transport_Exception if accessKey is not present in the config
|
55 |
+
* @throws Zend_Mail_Transport_Exception if privateKey is not present in the config
|
56 |
+
*/
|
57 |
+
public function __construct(Array $config = array(), $host = 'https://email.us-east-1.amazonaws.com')
|
58 |
+
{
|
59 |
+
if(!array_key_exists('accessKey', $config)){
|
60 |
+
throw new Zend_Mail_Transport_Exception('This transport requires the Amazon access key');
|
61 |
+
}
|
62 |
+
|
63 |
+
if(!array_key_exists('privateKey', $config)){
|
64 |
+
throw new Zend_Mail_Transport_Exception('This transport requires the Amazon private key');
|
65 |
+
}
|
66 |
+
|
67 |
+
$this->_accessKey = $config['accessKey'];
|
68 |
+
$this->_privateKey = $config['privateKey'];
|
69 |
+
$this->_host = Zend_Uri::factory($host);
|
70 |
+
}
|
71 |
+
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Send an email using the amazon webservice api
|
75 |
+
*
|
76 |
+
* @return void
|
77 |
+
*/
|
78 |
+
public function _sendMail()
|
79 |
+
{
|
80 |
+
$date = gmdate('D, d M Y H:i:s O');
|
81 |
+
|
82 |
+
//Send the request
|
83 |
+
$client = new Zend_Http_Client($this->_host);
|
84 |
+
$client->setMethod(Zend_Http_Client::POST);
|
85 |
+
$client->setHeaders(array(
|
86 |
+
'Date' => $date,
|
87 |
+
'X-Amzn-Authorization' => $this->_buildAuthKey($date)
|
88 |
+
));
|
89 |
+
$client->setEncType('application/x-www-form-urlencoded');
|
90 |
+
|
91 |
+
//Build the parameters
|
92 |
+
$params = array(
|
93 |
+
'Action' => 'SendRawEmail',
|
94 |
+
'Source' => $this->_mail->getFrom(),
|
95 |
+
'RawMessage.Data' => base64_encode(sprintf("%s\n%s\n", $this->header, $this->body))
|
96 |
+
);
|
97 |
+
|
98 |
+
$recipients = explode(',', $this->recipients);
|
99 |
+
while(list($index, $recipient) = each($recipients)){
|
100 |
+
$params[sprintf('Destination.ToAddresses.member.%d', $index + 1)] = $recipient;
|
101 |
+
}
|
102 |
+
|
103 |
+
$client->resetParameters();
|
104 |
+
$client->setParameterPost($params);
|
105 |
+
$response = $client->request(Zend_Http_Client::POST);
|
106 |
+
|
107 |
+
if($response->getStatus() != 200){
|
108 |
+
throw new Exception($response->getBody());
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Format and fix headers
|
115 |
+
*
|
116 |
+
* Some SMTP servers do not strip BCC headers. Most clients do it themselves as do we.
|
117 |
+
*
|
118 |
+
* @access protected
|
119 |
+
* @param array $headers
|
120 |
+
* @return void
|
121 |
+
* @throws Zend_Transport_Exception
|
122 |
+
*/
|
123 |
+
protected function _prepareHeaders($headers)
|
124 |
+
{
|
125 |
+
if (!$this->_mail) {
|
126 |
+
/**
|
127 |
+
* @see Zend_Mail_Transport_Exception
|
128 |
+
*/
|
129 |
+
require_once 'Zend/Mail/Transport/Exception.php';
|
130 |
+
throw new Zend_Mail_Transport_Exception('_prepareHeaders requires a registered Zend_Mail object');
|
131 |
+
}
|
132 |
+
|
133 |
+
unset($headers['Bcc']);
|
134 |
+
|
135 |
+
// Prepare headers
|
136 |
+
parent::_prepareHeaders($headers);
|
137 |
+
}
|
138 |
+
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Returns header string containing encoded authentication key
|
142 |
+
*
|
143 |
+
* @param date $date
|
144 |
+
* @return string
|
145 |
+
*/
|
146 |
+
private function _buildAuthKey($date){
|
147 |
+
return sprintf('AWS3-HTTPS AWSAccessKeyId=%s,Algorithm=HmacSHA256,Signature=%s', $this->_accessKey, base64_encode(hash_hmac('sha256', $date, $this->_privateKey, TRUE)));
|
148 |
+
}
|
149 |
+
}
|
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ASchroder_SMTPPro</name>
|
4 |
-
<version>1.4.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
@@ -14,7 +14,9 @@ For SMTP it handles everything from SMTP server authentication with MD5-CRAM to
|
|
14 |
For Google Apps and Gmail it offers the same stupidly simple setup as always.
|
15 |

|
16 |
The extension itself now supports several new features, such as suppressing emails and sending development mode emails to a single inbox, sending from multiple different gmail/google accounts and now email logging.</description>
|
17 |
-
<notes>1.4.
|
|
|
|
|
18 |

|
19 |
1.4.1 - Missed one place where a non-standard basedir will trip up the self test and add extra exception logging.
|
20 |

|
@@ -40,9 +42,9 @@ The extension itself now supports several new features, such as suppressing emai
|
|
40 |

|
41 |
1.0.1 - Re release of the SMTP Pro extension as a combined SMTP + Google apps/Gmail extension.</notes>
|
42 |
<authors><author><name>Ashley Schroder</name><user>auto-converted</user><email>ashley.schroder@gmail.com</email></author></authors>
|
43 |
-
<date>2011-03-
|
44 |
-
<time>
|
45 |
-
<contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="smtppro"><file name="view.phtml" hash="fd22a77c5754913bac050923bff57d95"/></dir></dir></dir></dir></dir></target><target name="magecommunity"><dir name="Aschroder"><dir name="SMTPPro"><dir name="Block"><dir name="Adminhtml"><file name="Test.php" hash="0d0ff50fe926cd5704426d5a7b255176"/></dir><dir name="Log"><file name="Grid.php" hash="2f04731eeeb9d821857fccda014a6d84"/><file name="View.php" hash="396702d55673f05961cf646525212534"/></dir><file name="Log.php" hash="d2a7233ec0fd3f20d048f3dd412f61a3"/></dir><dir name="Helper"><file name="Data.php" hash="
|
46 |
<compatible/>
|
47 |
<dependencies/>
|
48 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ASchroder_SMTPPro</name>
|
4 |
+
<version>1.4.3</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
14 |
For Google Apps and Gmail it offers the same stupidly simple setup as always.
|
15 |

|
16 |
The extension itself now supports several new features, such as suppressing emails and sending development mode emails to a single inbox, sending from multiple different gmail/google accounts and now email logging.</description>
|
17 |
+
<notes>1.4.3 - Added Amazon SES support, experimental only
|
18 |
+

|
19 |
+
1.4.2 - Updated Email_Template to work with Magento 1.5.
|
20 |

|
21 |
1.4.1 - Missed one place where a non-standard basedir will trip up the self test and add extra exception logging.
|
22 |

|
42 |

|
43 |
1.0.1 - Re release of the SMTP Pro extension as a combined SMTP + Google apps/Gmail extension.</notes>
|
44 |
<authors><author><name>Ashley Schroder</name><user>auto-converted</user><email>ashley.schroder@gmail.com</email></author></authors>
|
45 |
+
<date>2011-03-20</date>
|
46 |
+
<time>04:24:33</time>
|
47 |
+
<contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="smtppro"><file name="view.phtml" hash="fd22a77c5754913bac050923bff57d95"/></dir></dir></dir></dir></dir></target><target name="magecommunity"><dir name="Aschroder"><dir name="SMTPPro"><dir name="Block"><dir name="Adminhtml"><file name="Test.php" hash="0d0ff50fe926cd5704426d5a7b255176"/></dir><dir name="Log"><file name="Grid.php" hash="2f04731eeeb9d821857fccda014a6d84"/><file name="View.php" hash="396702d55673f05961cf646525212534"/></dir><file name="Log.php" hash="d2a7233ec0fd3f20d048f3dd412f61a3"/></dir><dir name="Helper"><file name="Data.php" hash="e4ebefdc54df5e440caafa6365534624"/></dir><dir name="Model"><dir name="Email"><file name="Log.php" hash="c05dcbe851684410e0cbcfed6cc914cd"/><file name="Template.php" hash="a234cf2f9fa7d4b9a0e83c52e46e3d0f"/></dir><dir name="Mysql4"><dir name="Email"><dir name="Log"><file name="Collection.php" hash="8ca40c787081eb19f665e8033bfd5025"/></dir><file name="Log.php" hash="c8331530a6744b42c52beaf0e714fddd"/></dir><file name="Setup.php" hash="a1f73ffd26ddd42a9789b071a40b2450"/></dir><dir name="Newsletter"><file name="Template.php" hash="b38356df77253bd116ee5b6f6c59b223"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Smtp"><file name="Authentication.php" hash="2e871d8a7a4beaff99c818a51fb38344"/><file name="Development.php" hash="2f9b6177e6063c2d42483c9af65995d3"/><file name="Option.php" hash="a4335eb0c2bc92c6a3356dd62fc568ff"/><file name="Ssl.php" hash="ae9af390a40b8bcebbc8451a9152821f"/></dir></dir></dir></dir><file name="Email.php" hash="043689ad6ac3bfa6c96739596126fd20"/><file name="Observer.php" hash="a9df4366354e355bfdb1476720610331"/></dir><dir name="controllers"><file name="IndexController.php" hash="63dcb8c38abd84e4996abb49e6b5d543"/><file name="LogController.php" hash="b6819bb30738db7416ca241303e5b1fd"/></dir><dir name="etc"><file name="config.xml" hash="512a199b1e4092c9051582afa648cce2"/><file name="system.xml" hash="9f4b9a8f2e59de0b3fd6b28c9a49b1d7"/></dir><dir name="lib"><file name="AmazonSES.php" hash="64e65ec97f0f2e3e72d132ed612fb858"/></dir><dir name="locale"><dir name="de_DE"><file name="Aschroder_SMTPPro.csv" hash="5b2e576a73cc62cfaf3ffc61d5149bb8"/></dir></dir><dir name="modules"><file name="Aschroder_SMTPPro.xml" hash="8a4e6872dd721b6bd17bce8b1cb11769"/></dir><dir name="sql"><dir name="smtppro_setup"><file name="mysql4-install-1.1.0.php" hash="5c13c266d15ce411658ae616c3e41e63"/></dir></dir><dir name="templates"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="template"><dir name="smtppro"><file name="view.phtml" hash="fd22a77c5754913bac050923bff57d95"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Aschroder_SMTPPro.xml" hash="8a4e6872dd721b6bd17bce8b1cb11769"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="Aschroder_SMTPPro.csv" hash="5b2e576a73cc62cfaf3ffc61d5149bb8"/></dir></target></contents>
|
48 |
<compatible/>
|
49 |
<dependencies/>
|
50 |
</package>
|