Skip to content

Commit 9332662

Browse files
committed
Predefined smtp settings was added; More smtp providers
1 parent 706dab0 commit 9332662

4 files changed

Lines changed: 150 additions & 10 deletions

File tree

app/code/community/TM/Email/Block/Adminhtml/Gateway/Transport/Edit/Form.php

Lines changed: 98 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ protected function _prepareForm()
2828
$data = Mage::registry('tm_email_gateway_transport_data')->getData();
2929
}
3030

31+
$isNew = !isset($data['id']);
32+
3133
$fieldset = $form->addFieldset(
3234
'gateway_general_form',
3335
array('legend' => Mage::helper('tm_email')->__('Email Transport Details'))
@@ -67,13 +69,106 @@ protected function _prepareForm()
6769
)
6870
),
6971
));
70-
$fieldset->addField('type', 'select', array(
72+
73+
$el = $fieldset->addField('type', 'select', array(
7174
'label' => Mage::helper('tm_email')->__('Type'),
7275
'name' => 'type',
7376
'required' => true,
74-
'values' => TM_Email_Model_System_Config_Source_Gateway_Transport_Provider::toOptionArray()
77+
'values' => TM_Email_Model_System_Config_Source_Gateway_Transport_Provider::toOptionArray(),
78+
'onchange' => $isNew ? 'fillDefaultProviderData(this)' : 'return false'
7579
));
7680

81+
if ($isNew) {
82+
$conf = array(
83+
TM_Email_Model_Gateway_Transport::TYPE_AOL => array(
84+
'host' => 'smtp.aol.com',
85+
'port' => 587,
86+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_NONE,
87+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
88+
),
89+
TM_Email_Model_Gateway_Transport::TYPE_COMCAST => array(
90+
'host' => 'smtp.comcast.net',
91+
'port' => 587,
92+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_NONE,
93+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
94+
),
95+
TM_Email_Model_Gateway_Transport::TYPE_GMX => array(
96+
'host' => 'mail.gmx.net',
97+
'port' => 587,
98+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_TLS,
99+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
100+
),
101+
TM_Email_Model_Gateway_Transport::TYPE_GMAIL => array(
102+
'host' => 'smtp.gmail.com',
103+
'port' => 465,
104+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_SSL,
105+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
106+
),
107+
TM_Email_Model_Gateway_Transport::TYPE_HOTMAIL => array(
108+
'host' => 'smtp.live.com',
109+
'port' => 465,
110+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_SSL,
111+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
112+
),
113+
TM_Email_Model_Gateway_Transport::TYPE_MAILCOM => array(
114+
'host' => 'smtp.mail.com',
115+
'port' => 465,
116+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_SSL,
117+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
118+
),
119+
TM_Email_Model_Gateway_Transport::TYPE_O2 => array(
120+
'host' => 'smtp.o2.ie',
121+
'port' => 25,
122+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_NONE,
123+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
124+
),
125+
TM_Email_Model_Gateway_Transport::TYPE_OFFICE365 => array(
126+
'host' => 'smtp.office365.com',
127+
'port' => 587,
128+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_TLS,
129+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
130+
),
131+
TM_Email_Model_Gateway_Transport::TYPE_ORANGE => array(
132+
'host' => 'smtp.orange.net',
133+
'port' => 25,
134+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_NONE,
135+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
136+
),
137+
TM_Email_Model_Gateway_Transport::TYPE_OUTLOOK => array(
138+
'host' => 'smtp-mail.outlook.com',
139+
'port' => 587,
140+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_TLS,
141+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
142+
),
143+
TM_Email_Model_Gateway_Transport::TYPE_YAHOO => array(
144+
'host' => 'smtp.mail.yahoo.com',
145+
'port' => 465,
146+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_SSL,
147+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
148+
),
149+
TM_Email_Model_Gateway_Transport::TYPE_ZOHO => array(
150+
'host' => 'smtp.zoho.com',
151+
'port' => 465,
152+
'secure' => TM_Email_Model_Gateway_Transport::SECURE_SSL,
153+
'auth' => TM_Email_Model_Gateway_Transport::AUTH_LOGIN
154+
)
155+
);
156+
$el->setAfterElementHtml(
157+
"<script type=\"text/javascript\">
158+
function fillDefaultProviderData(element)
159+
{
160+
var type = element.value, dataset = " . json_encode($conf) . ";
161+
if (dataset[type]) {
162+
\$H(dataset[type]).each(function(pair){
163+
$(pair.key).value = pair.value;
164+
});
165+
}
166+
}
167+
</script>
168+
");
169+
}
170+
171+
77172
$fieldset->addField('host', 'text', array(
78173
'label' => Mage::helper('tm_email')->__('Host'),
79174
'class' => 'required-entry',
@@ -141,4 +236,4 @@ protected function _prepareForm()
141236
$this->setForm($form);
142237
return parent::_prepareForm();
143238
}
144-
}
239+
}

app/code/community/TM/Email/Model/Gateway/Transport.php

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
<?php
22
class TM_Email_Model_Gateway_Transport extends Mage_Core_Model_Abstract
33
{
4-
const TYPE_SENDMAIL = 0;
5-
const TYPE_SMTP = 1;
6-
// const TYPE_GMAIL = 2;
4+
const TYPE_SENDMAIL = 0;
5+
const TYPE_SMTP = 1;
6+
7+
const TYPE_AOL = 2;
8+
const TYPE_COMCAST = 3;
9+
const TYPE_GMX = 4;
10+
const TYPE_GMAIL = 5;
11+
const TYPE_HOTMAIL = 6;
12+
const TYPE_MAILCOM = 7;
13+
const TYPE_MAILGUN = 8;
14+
const TYPE_O2 = 9;
15+
const TYPE_OFFICE365 = 10;
16+
const TYPE_ORANGE = 11;
17+
const TYPE_OUTLOOK = 12;
18+
const TYPE_YAHOO = 13;
19+
const TYPE_ZOHO = 14;
720

821
const SECURE_NONE = 0;//false;
922
const SECURE_SSL = 1;//'SSL';
1023
const SECURE_TLS = 2;//'TLS';
1124

25+
const AUTH_LOGIN = 'login';
26+
const AUTH_PLAIN = 'plain';
27+
const AUTH_CRAMMD5 = 'crammd5';
28+
1229
public function _construct()
1330
{
1431
parent::_construct();
@@ -50,6 +67,19 @@ public function getTransport($id = null)
5067
$type = $this->getType();
5168
switch ($type) {
5269
case self::TYPE_SMTP:
70+
case self::TYPE_AOL:
71+
case self::TYPE_COMCAST:
72+
case self::TYPE_GMX:
73+
case self::TYPE_GMAIL:
74+
case self::TYPE_HOTMAIL:
75+
case self::TYPE_MAILCOM:
76+
case self::TYPE_MAILGUN:
77+
case self::TYPE_O2:
78+
case self::TYPE_OFFICE365:
79+
case self::TYPE_ORANGE:
80+
case self::TYPE_OUTLOOK:
81+
case self::TYPE_YAHOO:
82+
case self::TYPE_ZOHO:
5383
$config = array();
5484

5585
$port = $this->getPort();
@@ -72,7 +102,6 @@ public function getTransport($id = null)
72102
break;
73103
case self::TYPE_SENDMAIL:
74104
default:
75-
76105
ini_set('SMTP', Mage::getStoreConfig('system/smtp/host'));
77106
ini_set('smtp_port', Mage::getStoreConfig('system/smtp/port'));
78107

app/code/community/TM/Email/Model/System/Config/Source/Gateway/Transport/Auth.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ class TM_Email_Model_System_Config_Source_Gateway_Transport_Auth
55

66
static public function toOptionHash()
77
{
8-
return array('login', 'plain', 'crammd5');
8+
return array(
9+
TM_Email_Model_Gateway_Transport::AUTH_LOGIN,
10+
TM_Email_Model_Gateway_Transport::AUTH_PLAIN,
11+
TM_Email_Model_Gateway_Transport::AUTH_CRAMMD5
12+
);
913
}
1014

1115
/**

app/code/community/TM/Email/Model/System/Config/Source/Gateway/Transport/Provider.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,20 @@ static public function toOptionHash()
77
{
88
return array(
99
// TM_Email_Model_Gateway_Transport::TYPE_SENDMAIL => 'Sendmail',
10-
TM_Email_Model_Gateway_Transport::TYPE_SMTP => 'Smtp',
11-
// TM_Email_Model_Gateway_Transport::TYPE_GMAIL => 'Gmail',
10+
TM_Email_Model_Gateway_Transport::TYPE_SMTP => 'Smtp',
11+
TM_Email_Model_Gateway_Transport::TYPE_AOL => 'AOL Mail',
12+
TM_Email_Model_Gateway_Transport::TYPE_COMCAST => 'Comcast',
13+
TM_Email_Model_Gateway_Transport::TYPE_GMX => 'GMX',
14+
TM_Email_Model_Gateway_Transport::TYPE_GMAIL => 'Gmail',
15+
TM_Email_Model_Gateway_Transport::TYPE_HOTMAIL => 'Hotmail',
16+
TM_Email_Model_Gateway_Transport::TYPE_MAILCOM => 'Mail.com',
17+
TM_Email_Model_Gateway_Transport::TYPE_MAILGUN => 'Mailgun',
18+
TM_Email_Model_Gateway_Transport::TYPE_O2 => 'O2 Mail',
19+
TM_Email_Model_Gateway_Transport::TYPE_OFFICE365 => 'Office365',
20+
TM_Email_Model_Gateway_Transport::TYPE_ORANGE => 'Orange',
21+
TM_Email_Model_Gateway_Transport::TYPE_OUTLOOK => 'Outlook',
22+
TM_Email_Model_Gateway_Transport::TYPE_YAHOO => 'Yahoo!',
23+
TM_Email_Model_Gateway_Transport::TYPE_ZOHO => 'Zoho'
1224
);
1325
}
1426

0 commit comments

Comments
 (0)