mailroute 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +1 -1
- data/README.md +57 -50
- data/lib/mailroute.rb +3 -0
- data/lib/mailroute/models/anti_spam_modes.rb +11 -0
- data/lib/mailroute/models/email_account.rb +10 -0
- data/lib/mailroute/models/localpart_alias.rb +7 -0
- data/lib/mailroute/models/policy_domain.rb +2 -0
- data/lib/mailroute/models/policy_filter.rb +21 -0
- data/lib/mailroute/models/policy_user.rb +2 -0
- data/lib/mailroute/version.rb +1 -1
- data/requirements.txt +223 -0
- data/spec/lib/mailroute/models/email_account_spec.rb +39 -1
- data/spec/lib/mailroute/models/localpart_alias_spec.rb +34 -0
- data/spec/lib/mailroute/models/policy_filter_spec.rb +69 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_add_alias/adding_an_alias/should_add_an_alias_with_given_name.yml +106 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_add_alias/adding_an_alias/should_add_one_more_alias.yml +208 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_bulk_add_aliases/adding_aliases/should_add_aliases_with_given_names.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_bulk_add_aliases/adding_aliases/should_add_one_more_alias.yml +206 -0
- data/spec/vcr_cassettes/Mailroute_LocalpartAlias/CRUD/should_create_read_update_and_delete_localpart_aliases.yml +736 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/aggressive_mode/anti_spam_preset/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/disabling_banned_filter/bypass_banned_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/disabling_header_filter/bypass_header_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/disabling_spam_filter/bypass_spam_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/disabling_virus_filter/bypass_virus_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/enabling_banned_filter/bypass_banned_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/enabling_header_filter/bypass_header_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/enabling_spam_filter/bypass_spam_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/enabling_virus_filter/bypass_virus_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/lenient_mode/anti_spam_preset/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyDomain/unknown_mode/should_raise_argument_error.yml +37 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/aggressive_mode/anti_spam_preset/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/disabling_banned_filter/bypass_banned_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/disabling_header_filter/bypass_header_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/disabling_spam_filter/bypass_spam_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/disabling_virus_filter/bypass_virus_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/enabling_banned_filter/bypass_banned_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/enabling_header_filter/bypass_header_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/enabling_spam_filter/bypass_spam_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/enabling_virus_filter/bypass_virus_checks/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/lenient_mode/anti_spam_preset/.yml +104 -0
- data/spec/vcr_cassettes/Mailroute_PolicyFilter/Mailroute_PolicyUser/unknown_mode/should_raise_argument_error.yml +37 -0
- metadata +78 -16
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -24,74 +24,81 @@ Or install it by yourself as:
|
|
24
24
|
|
25
25
|
# Configuration
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
27
|
+
```ruby
|
28
|
+
Mailroute.configure(
|
29
|
+
:username => '<username here>',
|
30
|
+
:apikey => '0d1a...a33'
|
31
|
+
)
|
32
|
+
```
|
32
33
|
|
33
34
|
# Reseller
|
34
35
|
|
35
|
-
|
36
|
-
|
36
|
+
```ruby
|
37
|
+
# A list of resellers
|
38
|
+
Mailroute::Reseller.list #=> [...]
|
37
39
|
|
38
|
-
|
39
|
-
|
40
|
+
# You can specify limit and offset
|
41
|
+
Mailroute::Reseller.list.offset(20).limit(30) #=> [...]
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
43
|
+
reseller = Mailroute::Reseller.get(12) #=> Reseller<...>
|
44
|
+
reseller.name #=> "John Doe"
|
45
|
+
reseller.name = 'Jane Doe'
|
46
|
+
reseller.save
|
45
47
|
|
46
|
-
|
48
|
+
Mailroute::Reseller.get(12).name #=> 'Jane Doe'
|
47
49
|
|
48
|
-
|
50
|
+
reseller.delete
|
49
51
|
|
50
|
-
|
52
|
+
Mailroute::Reseller.get(12) #=> ActiveResource::ResourceNotFound
|
51
53
|
|
52
|
-
|
54
|
+
reseller = Mailroute::Reseller.get(name: 'John Smith') #=> Reseller<...>
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
+
resellers = Mailroute::Reseller.search('Smith') #=> [Reseller<...>, ...]
|
57
|
+
resellers.include?(reseller) #=> true
|
56
58
|
|
57
|
-
|
58
|
-
|
59
|
-
|
59
|
+
Mailroute::Reseller.filter(name: 'Smith') #=> [...]
|
60
|
+
Mailroute::Reseller.filter(name__exact: 'John Smith') #=> [...]
|
61
|
+
Mailroute::Reseller.filter(name__starts_with: 'Jo') #=> [...]
|
60
62
|
|
61
|
-
|
62
|
-
|
63
|
-
|
63
|
+
Mailroute::Reseller.list.order_by('-name')
|
64
|
+
Mailroute::Reseller.list.order_by('name')
|
65
|
+
Mailroute::Reseller.list.order_by('created_at')
|
64
66
|
|
65
|
-
|
66
|
-
|
67
|
+
new_reseller = Mailroute::Reseller.create(name: 'New Guy') #=> Reseller<...>
|
68
|
+
new_reseller.id #=> 11111
|
67
69
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
70
|
+
new_resellers = Mailroute::Reseller.bulk_create(
|
71
|
+
{ name: 'R2D2' },
|
72
|
+
{ name: '3PO' },
|
73
|
+
{ name: 'Luke Skywalker' }
|
74
|
+
)
|
75
|
+
new_resellers.count #=> 3
|
74
76
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
# mass deletion
|
78
|
+
# by ids:
|
79
|
+
Mailroute::Reseller.delete([10, 12, 13])
|
80
|
+
# by instances:
|
81
|
+
Mailroute::Reseller.delete(new_resellers)
|
80
82
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
83
|
+
# Associations:
|
84
|
+
reseller.customers #=> [Customer<...>, ...]
|
85
|
+
reseller.admins #=> [Admin<...>, ...]
|
86
|
+
reseller.contacts #=> [ResellerContact<...>, ...]
|
87
|
+
reseller.branding_info #=> BrandingInfo<...>
|
86
88
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
89
|
+
send_welcome = true
|
90
|
+
reseller.create_admin('admin@example.com', send_welcome) #=> Admin<...>
|
91
|
+
reseller.delete_admin('admin@example.com')
|
92
|
+
reseller.create_contact(params) #=> ResellerContact<...>
|
93
|
+
reseller.create_customer(params) #=> Customer<...>
|
92
94
|
|
93
|
-
|
94
|
-
|
95
|
+
# All list operations allow chaining
|
96
|
+
Mailroute::Reseller.
|
97
|
+
limit(10).
|
98
|
+
offset(30).
|
99
|
+
filter(name: 'Fox').
|
100
|
+
order('created_at') #=> [Reseller<...>, ...]
|
101
|
+
```
|
95
102
|
|
96
103
|
## Contributing
|
97
104
|
|
data/lib/mailroute.rb
CHANGED
@@ -19,10 +19,13 @@ require 'mailroute/models/admin'
|
|
19
19
|
require 'mailroute/models/reseller'
|
20
20
|
require 'mailroute/models/branding_info'
|
21
21
|
require 'mailroute/models/domain_alias'
|
22
|
+
require 'mailroute/models/anti_spam_modes'
|
23
|
+
require 'mailroute/models/policy_filter'
|
22
24
|
require 'mailroute/models/policy_user'
|
23
25
|
require 'mailroute/models/notification_account_task'
|
24
26
|
require 'mailroute/models/email_account_contact'
|
25
27
|
require 'mailroute/models/wblist'
|
28
|
+
require 'mailroute/models/localpart_alias'
|
26
29
|
require 'mailroute/models/email_account'
|
27
30
|
require 'mailroute/models/mail_server'
|
28
31
|
require 'mailroute/models/outbound_server'
|
@@ -6,6 +6,7 @@ module Mailroute
|
|
6
6
|
has_one :notification_task, :class => NotificationAccountTask
|
7
7
|
has_one :contact, :class => EmailAccountContact
|
8
8
|
has_many :wblist, :class => WBList
|
9
|
+
has_many :aliases, :class => LocalpartAlias
|
9
10
|
|
10
11
|
def blacklist
|
11
12
|
WBList.filter(:email_account => id, :wb => 'b').map(&:email)
|
@@ -34,6 +35,15 @@ module Mailroute
|
|
34
35
|
self.class.format.decode(response.body)['api_key']
|
35
36
|
end
|
36
37
|
|
38
|
+
def add_alias(localpart)
|
39
|
+
LocalpartAlias.create(:email_account => self, :localpart => localpart)
|
40
|
+
end
|
41
|
+
|
42
|
+
def bulk_add_aliases(localparts)
|
43
|
+
request_body = self.class.format.encode(:aliases => localparts)
|
44
|
+
connection.post(element_path(prefix_options) + 'mass_add_aliases/', request_body, self.class.headers)
|
45
|
+
end
|
46
|
+
|
37
47
|
class << self
|
38
48
|
alias_method :get_by_id, :get
|
39
49
|
def get(*args)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Mailroute
|
2
|
+
module PolicyFilter
|
3
|
+
%w(spam virus header banned).each do |type|
|
4
|
+
define_method("disable_#{type}_filter") do
|
5
|
+
attributes["bypass_#{type}_checks"] = 'Y'
|
6
|
+
save!
|
7
|
+
end
|
8
|
+
|
9
|
+
define_method("enable_#{type}_filter") do
|
10
|
+
attributes["bypass_#{type}_checks"] = 'N'
|
11
|
+
save!
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def set_anti_spam_mode(mode)
|
16
|
+
raise ArgumentError, "Invalid mode #{mode}" unless AntiSpamModes.valid?(mode)
|
17
|
+
attributes['anti_spam_preset'] = mode
|
18
|
+
save!
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/mailroute/version.rb
CHANGED
data/requirements.txt
ADDED
@@ -0,0 +1,223 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
import mailroute
|
6
|
+
|
7
|
+
mailroute.configure(username="blabla", apikey="blabla")
|
8
|
+
|
9
|
+
Reseller resource and common actions/interface.
|
10
|
+
|
11
|
+
reseller_list = mailroute.Reseller.list() # list
|
12
|
+
reseller_list = mailroute.Reseller.list().limit(20) # list
|
13
|
+
reseller_list = mailroute.Reseller.list().offset(20) # list
|
14
|
+
reseller = mailroute.Reseller.get(id=12) # 1 instance
|
15
|
+
reseller.name = "newname"
|
16
|
+
reseller.save()
|
17
|
+
reseller = mailroute.Reseller.get(name="test") # 1 instance
|
18
|
+
reseller.name # test
|
19
|
+
reseller.delete()
|
20
|
+
reseller_list = mailroute.Reseller.search("searchstr") # list
|
21
|
+
reseller_list = mailroute.Reseller.filter(name__startswith="begin") # list
|
22
|
+
reseller_list = mailroute.Reseller.filter(name__exact="begin") # list
|
23
|
+
reseller_list = mailroute.Reseller.filter(name="begin") # list
|
24
|
+
|
25
|
+
# all list field allow ordering
|
26
|
+
|
27
|
+
reseller_list = mailroute.Reseller.filter(name="begin").order_by("-name") # list
|
28
|
+
reseller_list = mailroute.Reseller.filter(name="begin").order_by("name") # list
|
29
|
+
reseller_list = mailroute.Reseller.filter(name="begin").order_by("created_at") # list
|
30
|
+
|
31
|
+
new_reseller = mailroute.Reseller.create(name="newresl")
|
32
|
+
mailroute.Reseller.bulk_create([{'name':"r1"},{"name":"r2"}]) # mass create
|
33
|
+
mailroute.Reseller.delete([reseller1,reseller2]) # mass delete of resellers by instance of list of pk
|
34
|
+
|
35
|
+
reseller.customers # list of customers - additional api call , cached
|
36
|
+
reseller.admins # list of admins - additional api call , cached
|
37
|
+
reseller.contacts # list of contacts - additional api call , cached
|
38
|
+
reseller.branding_info # branding info instance for this reseller, api call, cached
|
39
|
+
|
40
|
+
reseller.create_admin(email, send_welcome)
|
41
|
+
reseller.delete_admin(email)
|
42
|
+
reseller.create_contact(params)
|
43
|
+
reseller.create_customer(params)
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
CUSTOMER RESORUCE
|
48
|
+
# crud same as reseller.
|
49
|
+
|
50
|
+
customer = mailroute.Customer.get(id=12)
|
51
|
+
|
52
|
+
# create
|
53
|
+
customer_new = mailroute.Customer.create({'name':"newresl", "customer":mailroute.Customer.get(id=12)})
|
54
|
+
customer_new = mailroute.Customer.create({'name':"newresl", "customer":"customername"}) # reference via name
|
55
|
+
customer_new = mailroute.Customer.create({'name':"newresl", "customer":3}) # reference via id
|
56
|
+
|
57
|
+
# When create references can be object or their key fields
|
58
|
+
|
59
|
+
get fields = id, name
|
60
|
+
create fields required = name, reseller
|
61
|
+
filter = name , reseller
|
62
|
+
ordering = ['name', 'created_at']
|
63
|
+
relation fields list = reseller, domains, contacts, admins
|
64
|
+
relation fields one = branding_info
|
65
|
+
|
66
|
+
|
67
|
+
customer.create_domain(params)
|
68
|
+
customer.create_contact(params)
|
69
|
+
customer.create_admin(email, send_welcome)
|
70
|
+
customer.delete_admin(email)
|
71
|
+
|
72
|
+
|
73
|
+
DOMAIN RESORUCE
|
74
|
+
|
75
|
+
get fields = id, name
|
76
|
+
filter = name , customer
|
77
|
+
create fields required = name, customer
|
78
|
+
create fields optional = hold_email, active, deliveryport, userlist_complete, outbound_enabled
|
79
|
+
ordering = ['name', 'created_at', 'active', 'hold_email' ]
|
80
|
+
relation fields list = customer (R), domain_aliases , email_accounts, mail_servers, outbound_servers, contacts, blacklist, whitelist , outbound_servers
|
81
|
+
relation fields one = policy (RU), notification_task (RU)
|
82
|
+
|
83
|
+
domain.get_quarantine() # return quarantine list
|
84
|
+
domain.move_to_customer(customer_instance) # move domain
|
85
|
+
domain.create_contact(params)
|
86
|
+
domain.create_mailserver(params)
|
87
|
+
domain.create_outbound_server(params)
|
88
|
+
domain.create_email_account(params)
|
89
|
+
domain.bulk_create_email_account([{},{}])
|
90
|
+
domain.create_alias(params)
|
91
|
+
domain.create_outbound_server("1.2.1.1")
|
92
|
+
domain.add_to_blacklist("spam@spam.com")
|
93
|
+
domain.add_to_whitelist("nospam@nospam.com")
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
DOMAINALIASRESOURCE
|
98
|
+
get fields = id,name
|
99
|
+
filter = domain
|
100
|
+
ordering = ['name', 'created_at']
|
101
|
+
create fields required = name, domain
|
102
|
+
create fields optional = active
|
103
|
+
relation fields one = domain
|
104
|
+
|
105
|
+
|
106
|
+
MAILSERVERRESOURCE
|
107
|
+
get fields = id
|
108
|
+
filter = domain
|
109
|
+
ordering = ['server', 'priority', ]
|
110
|
+
create fields required = server, domain
|
111
|
+
create fields optional = active
|
112
|
+
relation fields one = domain
|
113
|
+
|
114
|
+
|
115
|
+
POLICYDOMAINRESOURCE - ONLY RU
|
116
|
+
get fields = id
|
117
|
+
|
118
|
+
mailroute.Policy.get_default_policy() # return global default policy
|
119
|
+
|
120
|
+
relation fields one = domain
|
121
|
+
|
122
|
+
POLICYUSERRESOURCE - ONLY RU
|
123
|
+
get fields = id
|
124
|
+
relation fields one = email_account
|
125
|
+
|
126
|
+
notification_account_task.use_domain_policy()
|
127
|
+
notification_account_task.use_self_policy()
|
128
|
+
notification_account_task.is_active()
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
EMAILACCOUNTRESOURCE
|
133
|
+
|
134
|
+
get fields = id, localpart+domain
|
135
|
+
filter = domain, localpart
|
136
|
+
ordering = ['localpart', 'priority', 'domain', 'created_at']
|
137
|
+
create fields required = name, domain, localpart, create_opt ( choice of "generate_pwd","set_pwd")
|
138
|
+
create fields opt = password, send_welcome
|
139
|
+
relation fields one = domain , policy, notification_task , contact
|
140
|
+
relation fields list = aliases, blacklist, whitelist, quarantine
|
141
|
+
|
142
|
+
|
143
|
+
email_account.set_password("newpsswwd")
|
144
|
+
email_account.create_user(password=None, send_welcome=True)
|
145
|
+
mailroute.EmailAccount.create("localpart@domain.com")
|
146
|
+
email_account.create_user(password=None, send_welcome=True)
|
147
|
+
mailroute.EmailAccount.create("localpart@domain.com")
|
148
|
+
email_account.convert_to_alias()
|
149
|
+
email_account.bulk_add_alias(["alias1","alias2"])
|
150
|
+
email_account.add_alias("alias")
|
151
|
+
email_account.add_to_blacklist("spam@spam.com")
|
152
|
+
email_account.add_to_whitelist("nospam@nospam.com")
|
153
|
+
|
154
|
+
|
155
|
+
LOCALPARTALIASRESOURCE
|
156
|
+
get fields = id
|
157
|
+
filter = email_account
|
158
|
+
ordering = ['localpart', 'created_at', 'updated_at', ]
|
159
|
+
create fields required = email_account, localpart
|
160
|
+
relation fields one = email_account, domain
|
161
|
+
|
162
|
+
|
163
|
+
RESELLERCONTACTRESOURCE,CUSTOMERCONTACTRESOURCE,DOMAINCONTACTRESOURCE
|
164
|
+
get fields = id
|
165
|
+
filter = email, ( customer,reseller,domain)
|
166
|
+
ordering = ['first_name', 'last_name', 'email', 'is_technical', 'is_billing', 'is_emergency']
|
167
|
+
create fields required = email
|
168
|
+
create fields opt = first_name ,last_name,email, city,state, zipcode ,country, phone, address , address2 , is_technical, is_billing , is_emergency
|
169
|
+
relation fields one = ( customer,reseller,domain)
|
170
|
+
|
171
|
+
EMAILACCOUNTCONTACTRESOURCE
|
172
|
+
get fields = id
|
173
|
+
filter = email_account, email
|
174
|
+
ordering = ['first_name', 'last_name', 'email', 'is_technical', 'is_billing', 'is_emergency']
|
175
|
+
create fields required = email
|
176
|
+
create fields opt = first_name ,last_name,email, city,state, zipcode ,country, phone, address , address2 , is_technical , is_billing , is_emergency
|
177
|
+
relation fields one = email_account
|
178
|
+
|
179
|
+
OUTBOUNDSERVERRESOURCE
|
180
|
+
get fields = id
|
181
|
+
filter = domain
|
182
|
+
create fields required = server
|
183
|
+
relation fields one = domain
|
184
|
+
|
185
|
+
NOTIFICATIONDOMAINTASKRESOURCE
|
186
|
+
get fields = id
|
187
|
+
filter = domain
|
188
|
+
relation fields one = domain
|
189
|
+
|
190
|
+
NOTIFICATIONACCOUNTTASKRESOURCE
|
191
|
+
get fields = id
|
192
|
+
filter = email_account
|
193
|
+
relation fields one = email_account
|
194
|
+
|
195
|
+
notification_account_task.use_domain_notification()
|
196
|
+
notification_account_task.use_self_notification()
|
197
|
+
notification_account_task.is_active()
|
198
|
+
|
199
|
+
|
200
|
+
WBLISTRESOURCE
|
201
|
+
get fields = id
|
202
|
+
filter = domain, email_account, wb
|
203
|
+
create fields required = email, (email_account or domain), wb ( b for blacklist, w for whitelist)
|
204
|
+
relation fields one = domain, email_account
|
205
|
+
|
206
|
+
|
207
|
+
ADMINRESOURCE
|
208
|
+
get fields = id
|
209
|
+
filter = domain, email_account, wb
|
210
|
+
create fields required = email, (email_account or domain), wb ( b for blacklist, w for whitelist)
|
211
|
+
relation fields one = domain, email_account
|
212
|
+
|
213
|
+
|
214
|
+
QUARANTINERESOURCE
|
215
|
+
filter = domain, email_account , content ,rs,rid,email
|
216
|
+
ordering_dict = recipient,from_addr,spam_level,time_num,size,subject
|
217
|
+
|
218
|
+
message.whitelist_sender()
|
219
|
+
message.recover()
|
220
|
+
qlist = mailroute.Quarantine.filter(email_account=email_account_inst)
|
221
|
+
qlist.delete()
|
222
|
+
qlist.recover()
|
223
|
+
qlist.whitelist_sender(what='email',for='domain') # values for what email, domain for - domain,emailaccount.
|