mail_transport - Version 0.1.1.6

Version Notes

Send magento emails by protocol SMTP or save them to a files.

Download this release

Release Info

Developer Marcin Frymark
Extension mail_transport
Version 0.1.1.6
Comparing to
See all releases


Code changes from version 0.1.1.5 to 0.1.1.6

app/code/community/Alekseon/MailTransport/Model/Email/Template.php CHANGED
@@ -22,6 +22,24 @@ class Alekseon_MailTransport_Model_Email_Template extends Mage_Core_Model_Email_
22
  return false;
23
  }
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  public function getProcessedTemplate(array $variables = array())
26
  {
27
  $processedResult = parent::getProcessedTemplate($variables);
@@ -49,7 +67,7 @@ class Alekseon_MailTransport_Model_Email_Template extends Mage_Core_Model_Email_
49
 
50
  public function getMail($storeId = null)
51
  {
52
- if (is_null($this->_mail)) {
53
  $this->_mail = parent::getMail();
54
  $transport = $this->_getTransport($storeId);
55
  if ($transport) {
@@ -73,15 +91,26 @@ class Alekseon_MailTransport_Model_Email_Template extends Mage_Core_Model_Email_
73
  $transport = $this->_getSmtpTransport($storeId);
74
  break;
75
  case Alekseon_MailTransport_Model_System_Config_Source_MailTransportTypes::MAIL_TARNSPORT_TYPE_FILE:
76
- $transport= $this->_getFileTranport($storeId);
77
  break;
 
 
78
  }
79
 
80
- $this->getSentEmailModel()->setTransportType($transportType);
81
-
82
  return $transport;
83
  }
84
 
 
 
 
 
 
 
 
 
 
 
 
85
  protected function _getSmtpTransport($storeId = null)
86
  {
87
  $host = $this->getMailTransportConfig('smtp_host', $storeId);
@@ -98,10 +127,17 @@ class Alekseon_MailTransport_Model_Email_Template extends Mage_Core_Model_Email_
98
  }
99
 
100
  $transport = new Zend_Mail_Transport_Smtp($host, $config);
 
 
 
 
 
 
 
101
  return $transport;
102
  }
103
 
104
- protected function _getFileTranport($storeId = null)
105
  {
106
  $path = $this->getMailTransportConfig('file_path', $storeId);
107
  if ($path) {
@@ -118,6 +154,21 @@ class Alekseon_MailTransport_Model_Email_Template extends Mage_Core_Model_Email_
118
  return $transport;
119
  }
120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  public function send($email, $name = null, array $variables = array())
122
  {
123
  $this->getSentEmailModel()->addSender($this->getSenderEmail(), $this->getSenderName());
@@ -132,8 +183,12 @@ class Alekseon_MailTransport_Model_Email_Template extends Mage_Core_Model_Email_
132
  $this->getMail($store->getId());
133
  $this->getSentEmailModel()->setStoreId($store->getId());
134
 
135
- try {
136
- $result = parent::send($email, $name, $variables);
 
 
 
 
137
  $this->_saveSentEmail($email, $name, $result);
138
  } catch (Exception $e) {
139
  $this->getSentEmailModel()->setComment($e->getMessage());
@@ -167,6 +222,7 @@ class Alekseon_MailTransport_Model_Email_Template extends Mage_Core_Model_Email_
167
  $name = isset($names[$key]) ? $names[$key] : null;
168
  $this->getSentEmailModel()->addReceipient($email, $name);
169
  }
 
170
  $this->getSentEmailModel()->setTemplateType($this->getTemplateType());
171
  $this->getSentEmailModel()->setSentAt(Mage::getSingleton('core/date')->gmtDate());
172
  $this->getSentEmailModel()->setStatus($result);
22
  return false;
23
  }
24
 
25
+ protected function _getReturnPath()
26
+ {
27
+ $setReturnPath = Mage::getStoreConfig(Mage_Core_Model_Email_Template::XML_PATH_SENDING_SET_RETURN_PATH);
28
+ switch ($setReturnPath) {
29
+ case 1:
30
+ $returnPathEmail = $this->getSenderEmail();
31
+ break;
32
+ case 2:
33
+ $returnPathEmail = Mage::getStoreConfig(Mage_Core_Model_Email_Template::XML_PATH_SENDING_RETURN_PATH_EMAIL);
34
+ break;
35
+ default:
36
+ $returnPathEmail = null;
37
+ break;
38
+ }
39
+
40
+ return $returnPathEmail;
41
+ }
42
+
43
  public function getProcessedTemplate(array $variables = array())
44
  {
45
  $processedResult = parent::getProcessedTemplate($variables);
67
 
68
  public function getMail($storeId = null)
69
  {
70
+ if (is_null($this->_mail)) {
71
  $this->_mail = parent::getMail();
72
  $transport = $this->_getTransport($storeId);
73
  if ($transport) {
91
  $transport = $this->_getSmtpTransport($storeId);
92
  break;
93
  case Alekseon_MailTransport_Model_System_Config_Source_MailTransportTypes::MAIL_TARNSPORT_TYPE_FILE:
94
+ $transport = $this->_getFileTransport($storeId);
95
  break;
96
+ default:
97
+ $transport = $this->_getPhpTransport();
98
  }
99
 
 
 
100
  return $transport;
101
  }
102
 
103
+ protected function _getPhpTransport()
104
+ {
105
+ $returnPathEmail = $this->_getReturnPath();
106
+ if ($returnPathEmail) {
107
+ $trasnport = new Zend_Mail_Transport_Sendmail("-f".$returnPathEmail);
108
+ } else {
109
+ $trasnport = new Zend_Mail_Transport_Sendmail();
110
+ }
111
+ return $trasnport;
112
+ }
113
+
114
  protected function _getSmtpTransport($storeId = null)
115
  {
116
  $host = $this->getMailTransportConfig('smtp_host', $storeId);
127
  }
128
 
129
  $transport = new Zend_Mail_Transport_Smtp($host, $config);
130
+
131
+ $returnPathEmail = $this->_getReturnPath();
132
+
133
+ if ($returnPathEmail) {
134
+ $this->_mail->setReturnPath($returnPathEmail);
135
+ }
136
+
137
  return $transport;
138
  }
139
 
140
+ protected function _getFileTransport($storeId = null)
141
  {
142
  $path = $this->getMailTransportConfig('file_path', $storeId);
143
  if ($path) {
154
  return $transport;
155
  }
156
 
157
+ protected function _setTransportType()
158
+ {
159
+ $defaultTransportType = Zend_Mail::getDefaultTransport();
160
+ if ($defaultTransportType instanceof Zend_Mail_Transport_File) {
161
+ $transportType = Alekseon_MailTransport_Model_System_Config_Source_MailTransportTypes::MAIL_TARNSPORT_TYPE_FILE;
162
+ } else if ($defaultTransportType instanceof Zend_Mail_Transport_Smtp) {
163
+ $transportType = Alekseon_MailTransport_Model_System_Config_Source_MailTransportTypes::MAIL_TARNSPORT_TYPE_SMTP;
164
+ } else {
165
+ $transportType = Alekseon_MailTransport_Model_System_Config_Source_MailTransportTypes::MAIL_TARNSPORT_TYPE_DEFAULT;
166
+ }
167
+
168
+ $this->getSentEmailModel()->setTransportType($transportType);
169
+ return $this;
170
+ }
171
+
172
  public function send($email, $name = null, array $variables = array())
173
  {
174
  $this->getSentEmailModel()->addSender($this->getSenderEmail(), $this->getSenderName());
183
  $this->getMail($store->getId());
184
  $this->getSentEmailModel()->setStoreId($store->getId());
185
 
186
+ /* set return path to false, to avoid changing transport type by send method in parent class */
187
+ /* we check this configuration in _getReturnPath method, and we set return path before */
188
+ Mage::app()->getStore()->setConfig(Mage_Core_Model_Email_Template::XML_PATH_SENDING_SET_RETURN_PATH, false);
189
+
190
+ try {
191
+ $result = parent::send($email, $name, $variables);
192
  $this->_saveSentEmail($email, $name, $result);
193
  } catch (Exception $e) {
194
  $this->getSentEmailModel()->setComment($e->getMessage());
222
  $name = isset($names[$key]) ? $names[$key] : null;
223
  $this->getSentEmailModel()->addReceipient($email, $name);
224
  }
225
+ $this->_setTransportType();
226
  $this->getSentEmailModel()->setTemplateType($this->getTemplateType());
227
  $this->getSentEmailModel()->setSentAt(Mage::getSingleton('core/date')->gmtDate());
228
  $this->getSentEmailModel()->setStatus($result);
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>mail_transport</name>
4
- <version>0.1.1.5</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>
@@ -10,9 +10,9 @@
10
  <description>Send magento emails by protocol SMTP or save them to a files.</description>
11
  <notes>Send magento emails by protocol SMTP or save them to a files.</notes>
12
  <authors><author><name>Marcin Frymark</name><user>Alekseon</user><email>contact@alekseon.com</email></author></authors>
13
- <date>2014-07-02</date>
14
- <time>19:46:06</time>
15
- <contents><target name="magecommunity"><dir name="Alekseon"><dir name="MailTransport"><dir><dir name="Block"><dir name="Adminhtml"><dir name="SentEmail"><dir name="Grid"><dir name="Renderer"><file name="Receipient.php" hash="88a5e395a965ccae580d84ad0072b08e"/></dir></dir><file name="Grid.php" hash="64407523f244a2bce1a1c72ace24b2ac"/><file name="TopMessage.php" hash="80036003eeab72028e67c8c07f4aa52d"/><dir name="View"><file name="Form.php" hash="4e9aaf1663c7763550b68894eb54a0b0"/><file name="MailBody.php" hash="44abae1440de697501bd9569b1db73b3"/></dir><file name="View.php" hash="e3f941aad29a565e8f7916e237b30c0a"/></dir><file name="SentEmail.php" hash="578c135cc0f4b9bc3ccc01e745e3df2e"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="AlekseonLogo.php" hash="f51973c6b6547da6d3c4662a7fbb6566"/><file name="AlekseonNotification.php" hash="51f024aaf7825e876064ed8c2736c0bb"/></dir></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="f6539af5c617bc24c000d5d22e9ede3f"/></dir><dir name="Model"><dir name="AlekseonAdminNotification"><file name="Feed.php" hash="27c8bdb9455979eddfd9b91b467425aa"/><file name="Observer.php" hash="f44011324cad1c5284d0ea68a6267020"/></dir><dir name="Email"><file name="Template.php" hash="d55ad5ac934cb002ab7b86155511093b"/></dir><file name="Observer.php" hash="cb32eb694fba1e53c2396c0b4398ebf0"/><dir name="Resource"><dir name="SentEmail"><file name="Collection.php" hash="bf1c29041caa2d4614e7894297b55b47"/><dir name="Correspondent"><file name="Collection.php" hash="c4df13aea0717ba228f2b206d71cdc0a"/></dir><file name="Correspondent.php" hash="e4304608fedd99d74e3720ba40ab5811"/></dir><file name="SentEmail.php" hash="3b4302ca7d3c9c9c416dc6d1559847fd"/></dir><dir name="SentEmail"><file name="Correspondent.php" hash="79ce35e0cc043ef088cad17afe87e5b1"/></dir><file name="SentEmail.php" hash="ed67caf05d5f4e804fc24461ff415823"/><dir name="System"><dir name="Config"><dir name="Source"><file name="AllTemplates.php" hash="32458dd1cc2bd26d84f0c7125c1950ab"/><file name="EncryptionProtocols.php" hash="a099d4bece5da8edc2a8534130ad0fac"/><file name="MailTransportTypes.php" hash="0fbf18aad5a6563f59d399d7c2d004c1"/><file name="SmtpAuthModes.php" hash="459adb6fdc8c456693a29190742f03f4"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="MailTransport"><file name="SentEmailsHistoryController.php" hash="8857976b524cff7451f3fdeeae013932"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="0a84d9392de6dd9ab91fc7cc6b35cc0e"/><file name="config.xml" hash="72f211485e0e60895cc79b624ec4e6f3"/><file name="system.xml" hash="26f65502872705a3f6b61a5046ef25e7"/></dir><dir name="sql"><dir name="alekseon_mailtransport_setup"><file name="mysql4-install-0.1.1.php" hash="e9eab66079a531256d2db8a0895d5d2d"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="3d9654bef73b355ebe8d3b47e72555ff"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="161f973ead0e483088f701e57bc09082"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="aba0dd9636b0fea181d3ec160121de9b"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Alekseon_MailTransport.xml" hash="e99dcf95b0657403cec683729a620450"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="alekseon"><file name="mailTransport.xml" hash="052b7956a3fb7910f5dd29829fc112c7"/></dir></dir><dir name="template"><dir name="alekseon"><dir name="mailTransport"><dir name="sentEmail"><file name="topMessage.phtml" hash="a9440740f61ea7767406108f9011c07c"/><dir name="view"><file name="form.phtml" hash="c3f897163e1636fffee14988d8aae62a"/></dir></dir></dir></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>mail_transport</name>
4
+ <version>0.1.1.6</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>
10
  <description>Send magento emails by protocol SMTP or save them to a files.</description>
11
  <notes>Send magento emails by protocol SMTP or save them to a files.</notes>
12
  <authors><author><name>Marcin Frymark</name><user>Alekseon</user><email>contact@alekseon.com</email></author></authors>
13
+ <date>2014-07-18</date>
14
+ <time>08:32:30</time>
15
+ <contents><target name="magecommunity"><dir name="Alekseon"><dir name="MailTransport"><dir><dir name="Block"><dir name="Adminhtml"><dir name="SentEmail"><dir name="Grid"><dir name="Renderer"><file name="Receipient.php" hash="88a5e395a965ccae580d84ad0072b08e"/></dir></dir><file name="Grid.php" hash="64407523f244a2bce1a1c72ace24b2ac"/><file name="TopMessage.php" hash="80036003eeab72028e67c8c07f4aa52d"/><dir name="View"><file name="Form.php" hash="4e9aaf1663c7763550b68894eb54a0b0"/><file name="MailBody.php" hash="44abae1440de697501bd9569b1db73b3"/></dir><file name="View.php" hash="e3f941aad29a565e8f7916e237b30c0a"/></dir><file name="SentEmail.php" hash="578c135cc0f4b9bc3ccc01e745e3df2e"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="AlekseonLogo.php" hash="f51973c6b6547da6d3c4662a7fbb6566"/><file name="AlekseonNotification.php" hash="51f024aaf7825e876064ed8c2736c0bb"/></dir></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="f6539af5c617bc24c000d5d22e9ede3f"/></dir><dir name="Model"><dir name="AlekseonAdminNotification"><file name="Feed.php" hash="27c8bdb9455979eddfd9b91b467425aa"/><file name="Observer.php" hash="f44011324cad1c5284d0ea68a6267020"/></dir><dir name="Email"><file name="Template.php" hash="7ccad73f128c7eb95b0338409834306b"/></dir><file name="Observer.php" hash="cb32eb694fba1e53c2396c0b4398ebf0"/><dir name="Resource"><dir name="SentEmail"><file name="Collection.php" hash="bf1c29041caa2d4614e7894297b55b47"/><dir name="Correspondent"><file name="Collection.php" hash="c4df13aea0717ba228f2b206d71cdc0a"/></dir><file name="Correspondent.php" hash="e4304608fedd99d74e3720ba40ab5811"/></dir><file name="SentEmail.php" hash="3b4302ca7d3c9c9c416dc6d1559847fd"/></dir><dir name="SentEmail"><file name="Correspondent.php" hash="79ce35e0cc043ef088cad17afe87e5b1"/></dir><file name="SentEmail.php" hash="ed67caf05d5f4e804fc24461ff415823"/><dir name="System"><dir name="Config"><dir name="Source"><file name="AllTemplates.php" hash="32458dd1cc2bd26d84f0c7125c1950ab"/><file name="EncryptionProtocols.php" hash="a099d4bece5da8edc2a8534130ad0fac"/><file name="MailTransportTypes.php" hash="0fbf18aad5a6563f59d399d7c2d004c1"/><file name="SmtpAuthModes.php" hash="459adb6fdc8c456693a29190742f03f4"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="MailTransport"><file name="SentEmailsHistoryController.php" hash="8857976b524cff7451f3fdeeae013932"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="0a84d9392de6dd9ab91fc7cc6b35cc0e"/><file name="config.xml" hash="72f211485e0e60895cc79b624ec4e6f3"/><file name="system.xml" hash="26f65502872705a3f6b61a5046ef25e7"/></dir><dir name="sql"><dir name="alekseon_mailtransport_setup"><file name="mysql4-install-0.1.1.php" hash="e9eab66079a531256d2db8a0895d5d2d"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="3d9654bef73b355ebe8d3b47e72555ff"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="161f973ead0e483088f701e57bc09082"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="aba0dd9636b0fea181d3ec160121de9b"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Alekseon_MailTransport.xml" hash="e99dcf95b0657403cec683729a620450"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="alekseon"><file name="mailTransport.xml" hash="052b7956a3fb7910f5dd29829fc112c7"/></dir></dir><dir name="template"><dir name="alekseon"><dir name="mailTransport"><dir name="sentEmail"><file name="topMessage.phtml" hash="a9440740f61ea7767406108f9011c07c"/><dir name="view"><file name="form.phtml" hash="c3f897163e1636fffee14988d8aae62a"/></dir></dir></dir></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>