mail_autoconfig 0.0.1

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.
Files changed (254) hide show
  1. data/.yardopts +1 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +39 -0
  4. data/LICENSE.txt +25 -0
  5. data/README.md +57 -0
  6. data/Rakefile +11 -0
  7. data/doc/MailAutoconfig/ClientConfig.html +1353 -0
  8. data/doc/MailAutoconfig/EmailAddress.html +572 -0
  9. data/doc/MailAutoconfig/IncomingServer.html +154 -0
  10. data/doc/MailAutoconfig/OutgoingServer.html +154 -0
  11. data/doc/MailAutoconfig/Server.html +807 -0
  12. data/doc/MailAutoconfig.html +424 -0
  13. data/doc/_index.html +185 -0
  14. data/doc/class_list.html +54 -0
  15. data/doc/css/common.css +1 -0
  16. data/doc/css/full_list.css +57 -0
  17. data/doc/css/style.css +339 -0
  18. data/doc/file.README.html +135 -0
  19. data/doc/file_list.html +56 -0
  20. data/doc/frames.html +26 -0
  21. data/doc/index.html +135 -0
  22. data/doc/js/app.js +219 -0
  23. data/doc/js/full_list.js +178 -0
  24. data/doc/js/jquery.js +4 -0
  25. data/doc/method_list.html +227 -0
  26. data/doc/top-level-namespace.html +112 -0
  27. data/ispdb_data/1und1.de +65 -0
  28. data/ispdb_data/abc.plala.or.jp +24 -0
  29. data/ispdb_data/agate.plala.or.jp +24 -0
  30. data/ispdb_data/alice.it +30 -0
  31. data/ispdb_data/amail.plala.or.jp +24 -0
  32. data/ispdb_data/amber.plala.or.jp +24 -0
  33. data/ispdb_data/aol.com +45 -0
  34. data/ispdb_data/apost.plala.or.jp +24 -0
  35. data/ispdb_data/aqua.plala.or.jp +24 -0
  36. data/ispdb_data/arcor.de +57 -0
  37. data/ispdb_data/arubapec.it +34 -0
  38. data/ispdb_data/att.net +34 -0
  39. data/ispdb_data/ballade.plala.or.jp +24 -0
  40. data/ispdb_data/bay.wind.ne.jp +28 -0
  41. data/ispdb_data/bb-niigata.jp +22 -0
  42. data/ispdb_data/beige.plala.or.jp +24 -0
  43. data/ispdb_data/biglobe.ne.jp +23 -0
  44. data/ispdb_data/bigpond.com +28 -0
  45. data/ispdb_data/blue.plala.or.jp +24 -0
  46. data/ispdb_data/bluemail.ch +31 -0
  47. data/ispdb_data/bluewin.ch +30 -0
  48. data/ispdb_data/bmail.plala.or.jp +24 -0
  49. data/ispdb_data/bol.com.br +40 -0
  50. data/ispdb_data/bolero.plala.or.jp +24 -0
  51. data/ispdb_data/bpost.plala.or.jp +24 -0
  52. data/ispdb_data/broba.cc +25 -0
  53. data/ispdb_data/brown.plala.or.jp +24 -0
  54. data/ispdb_data/camel.plala.or.jp +24 -0
  55. data/ispdb_data/cameo.plala.or.jp +24 -0
  56. data/ispdb_data/cc9.ne.jp +21 -0
  57. data/ispdb_data/cek.ne.jp +21 -0
  58. data/ispdb_data/cgl.ucsf.edu +22 -0
  59. data/ispdb_data/charter.com +52 -0
  60. data/ispdb_data/clio.ne.jp +22 -0
  61. data/ispdb_data/cmail.plala.or.jp +24 -0
  62. data/ispdb_data/co1.wind.ne.jp +25 -0
  63. data/ispdb_data/co2.wind.ne.jp +25 -0
  64. data/ispdb_data/co3.wind.ne.jp +25 -0
  65. data/ispdb_data/cocoa.plala.or.jp +24 -0
  66. data/ispdb_data/coda.plala.or.jp +24 -0
  67. data/ispdb_data/comcast.net +57 -0
  68. data/ispdb_data/concerto.plala.or.jp +24 -0
  69. data/ispdb_data/coral.plala.or.jp +24 -0
  70. data/ispdb_data/courante.plala.or.jp +24 -0
  71. data/ispdb_data/cox.net +36 -0
  72. data/ispdb_data/cpost.plala.or.jp +24 -0
  73. data/ispdb_data/cream.plala.or.jp +24 -0
  74. data/ispdb_data/dan.wind.ne.jp +28 -0
  75. data/ispdb_data/dance.plala.or.jp +24 -0
  76. data/ispdb_data/dd.iij4u.or.jp +33 -0
  77. data/ispdb_data/df.eu +33 -0
  78. data/ispdb_data/dmail.plala.or.jp +24 -0
  79. data/ispdb_data/earthlink.net +35 -0
  80. data/ispdb_data/ebony.plala.or.jp +24 -0
  81. data/ispdb_data/email.it +33 -0
  82. data/ispdb_data/email.plala.or.jp +24 -0
  83. data/ispdb_data/ewetel.de +23 -0
  84. data/ispdb_data/fantasy.plala.or.jp +24 -0
  85. data/ispdb_data/flamenco.plala.or.jp +24 -0
  86. data/ispdb_data/fmail.plala.or.jp +24 -0
  87. data/ispdb_data/francetelecom.fr +31 -0
  88. data/ispdb_data/free.fr +62 -0
  89. data/ispdb_data/freenet.de +56 -0
  90. data/ispdb_data/fuga.plala.or.jp +24 -0
  91. data/ispdb_data/gandi.net +58 -0
  92. data/ispdb_data/gmail.plala.or.jp +24 -0
  93. data/ispdb_data/gmx.com +72 -0
  94. data/ispdb_data/gmx.net +66 -0
  95. data/ispdb_data/go.tvm.ne.jp +22 -0
  96. data/ispdb_data/goneo.de +56 -0
  97. data/ispdb_data/goo.jp +22 -0
  98. data/ispdb_data/googlemail.com +52 -0
  99. data/ispdb_data/grape.plala.or.jp +24 -0
  100. data/ispdb_data/gray.plala.or.jp +24 -0
  101. data/ispdb_data/hal.ne.jp +22 -0
  102. data/ispdb_data/hana.or.jp +22 -0
  103. data/ispdb_data/hotmail.com +58 -0
  104. data/ispdb_data/i.softbank.jp +22 -0
  105. data/ispdb_data/ic-net.or.jp +22 -0
  106. data/ispdb_data/iijmio-mail.jp +26 -0
  107. data/ispdb_data/iiyama-catv.ne.jp +21 -0
  108. data/ispdb_data/imail.plala.or.jp +24 -0
  109. data/ispdb_data/inbox.lt +26 -0
  110. data/ispdb_data/inbox.lv +26 -0
  111. data/ispdb_data/indigo.plala.or.jp +24 -0
  112. data/ispdb_data/inet-shibata.or.jp +22 -0
  113. data/ispdb_data/internode.on.net +32 -0
  114. data/ispdb_data/ipax.at +28 -0
  115. data/ispdb_data/ivory.plala.or.jp +24 -0
  116. data/ispdb_data/iwafune.ne.jp +22 -0
  117. data/ispdb_data/jade.plala.or.jp +24 -0
  118. data/ispdb_data/janis.or.jp +23 -0
  119. data/ispdb_data/jet.ne.jp +29 -0
  120. data/ispdb_data/ji.jet.ne.jp +22 -0
  121. data/ispdb_data/jmail.plala.or.jp +24 -0
  122. data/ispdb_data/kabelmail.de +31 -0
  123. data/ispdb_data/kelcom.net +21 -0
  124. data/ispdb_data/khaki.plala.or.jp +24 -0
  125. data/ispdb_data/kl.wind.ne.jp +32 -0
  126. data/ispdb_data/kmail.plala.or.jp +24 -0
  127. data/ispdb_data/kokuyou.ne.jp +21 -0
  128. data/ispdb_data/lapis.plala.or.jp +24 -0
  129. data/ispdb_data/laposte.net +37 -0
  130. data/ispdb_data/lemon.plala.or.jp +24 -0
  131. data/ispdb_data/libero.it +34 -0
  132. data/ispdb_data/lilac.plala.or.jp +24 -0
  133. data/ispdb_data/lime.plala.or.jp +24 -0
  134. data/ispdb_data/mahoroba.ne.jp +22 -0
  135. data/ispdb_data/mail.com +248 -0
  136. data/ispdb_data/mail.dk +22 -0
  137. data/ispdb_data/mail.iwafune.ne.jp +22 -0
  138. data/ispdb_data/mail.ru +57 -0
  139. data/ispdb_data/mail.telenor.dk +121 -0
  140. data/ispdb_data/mail.wind.ne.jp +29 -0
  141. data/ispdb_data/maroon.plala.or.jp +24 -0
  142. data/ispdb_data/me.com +31 -0
  143. data/ispdb_data/minuet.plala.or.jp +24 -0
  144. data/ispdb_data/ml.murakami.ne.jp +22 -0
  145. data/ispdb_data/mnet.ne.jp +22 -0
  146. data/ispdb_data/mopera.net +50 -0
  147. data/ispdb_data/mozilla.com +23 -0
  148. data/ispdb_data/mx1.tiki.ne.jp +54 -0
  149. data/ispdb_data/navy.plala.or.jp +24 -0
  150. data/ispdb_data/nifty.com +22 -0
  151. data/ispdb_data/nsat.jp +22 -0
  152. data/ispdb_data/o2.pl +35 -0
  153. data/ispdb_data/olive.plala.or.jp +24 -0
  154. data/ispdb_data/onet.pl +38 -0
  155. data/ispdb_data/opal.plala.or.jp +24 -0
  156. data/ispdb_data/orange.plala.or.jp +24 -0
  157. data/ispdb_data/orchid.plala.or.jp +24 -0
  158. data/ispdb_data/ovh.net +32 -0
  159. data/ispdb_data/pal.kijimadaira.jp +21 -0
  160. data/ispdb_data/palette.plala.or.jp +24 -0
  161. data/ispdb_data/parabox.or.jp +22 -0
  162. data/ispdb_data/pdx.edu +41 -0
  163. data/ispdb_data/peach.plala.or.jp +24 -0
  164. data/ispdb_data/peoplepc.com +29 -0
  165. data/ispdb_data/plum.plala.or.jp +24 -0
  166. data/ispdb_data/po.dcn.ne.jp +21 -0
  167. data/ispdb_data/po.wind.ne.jp +28 -0
  168. data/ispdb_data/pobox.com +53 -0
  169. data/ispdb_data/polka.plala.or.jp +24 -0
  170. data/ispdb_data/pop.shibata.ne.jp +23 -0
  171. data/ispdb_data/posteo.de +25 -0
  172. data/ispdb_data/purple.plala.or.jp +24 -0
  173. data/ispdb_data/rainbow.plala.or.jp +24 -0
  174. data/ispdb_data/rambler.ru +35 -0
  175. data/ispdb_data/red.plala.or.jp +24 -0
  176. data/ispdb_data/rmail.plala.or.jp +24 -0
  177. data/ispdb_data/rondo.plala.or.jp +24 -0
  178. data/ispdb_data/rose.plala.or.jp +24 -0
  179. data/ispdb_data/rouge.plala.or.jp +24 -0
  180. data/ispdb_data/rr.com +25 -0
  181. data/ispdb_data/ruby.plala.or.jp +24 -0
  182. data/ispdb_data/sakunet.ne.jp +21 -0
  183. data/ispdb_data/sea.plala.or.jp +24 -0
  184. data/ispdb_data/sepia.plala.or.jp +24 -0
  185. data/ispdb_data/serenade.plala.or.jp +24 -0
  186. data/ispdb_data/seznam.cz +26 -0
  187. data/ispdb_data/sfr.fr +36 -0
  188. data/ispdb_data/silk.plala.or.jp +24 -0
  189. data/ispdb_data/silver.plala.or.jp +24 -0
  190. data/ispdb_data/sky.plala.or.jp +24 -0
  191. data/ispdb_data/skynet.be +35 -0
  192. data/ispdb_data/smail.plala.or.jp +24 -0
  193. data/ispdb_data/snow.plala.or.jp +24 -0
  194. data/ispdb_data/so.wind.ne.jp +25 -0
  195. data/ispdb_data/sonata.plala.or.jp +24 -0
  196. data/ispdb_data/strato.de +43 -0
  197. data/ispdb_data/studenti.univr.it +22 -0
  198. data/ispdb_data/suite.plala.or.jp +24 -0
  199. data/ispdb_data/sympatico.ca +30 -0
  200. data/ispdb_data/symphony.plala.or.jp +24 -0
  201. data/ispdb_data/t-online.de +37 -0
  202. data/ispdb_data/taupe.plala.or.jp +24 -0
  203. data/ispdb_data/terra.es +29 -0
  204. data/ispdb_data/tiki.ne.jp +24 -0
  205. data/ispdb_data/tiscali.cz +25 -0
  206. data/ispdb_data/tiscali.it +31 -0
  207. data/ispdb_data/tmail.plala.or.jp +24 -0
  208. data/ispdb_data/toccata.plala.or.jp +24 -0
  209. data/ispdb_data/topaz.plala.or.jp +24 -0
  210. data/ispdb_data/trio.plala.or.jp +24 -0
  211. data/ispdb_data/umail.plala.or.jp +24 -0
  212. data/ispdb_data/umich.edu +22 -0
  213. data/ispdb_data/uol.com.br +42 -0
  214. data/ispdb_data/upcmail.nl +23 -0
  215. data/ispdb_data/verizon.net +21 -0
  216. data/ispdb_data/versatel.de +43 -0
  217. data/ispdb_data/violet.plala.or.jp +24 -0
  218. data/ispdb_data/vm.aikis.or.jp +22 -0
  219. data/ispdb_data/vmail.plala.or.jp +24 -0
  220. data/ispdb_data/vp.tiki.ne.jp +24 -0
  221. data/ispdb_data/waltz.plala.or.jp +24 -0
  222. data/ispdb_data/wave.plala.or.jp +24 -0
  223. data/ispdb_data/web.de +55 -0
  224. data/ispdb_data/white.plala.or.jp +24 -0
  225. data/ispdb_data/wildwestdomains.com +37 -0
  226. data/ispdb_data/wine.plala.or.jp +24 -0
  227. data/ispdb_data/wmail.plala.or.jp +24 -0
  228. data/ispdb_data/wp.pl +22 -0
  229. data/ispdb_data/xmail.plala.or.jp +24 -0
  230. data/ispdb_data/xp.wind.jp +24 -0
  231. data/ispdb_data/xpost.plala.or.jp +24 -0
  232. data/ispdb_data/xs4all.nl +22 -0
  233. data/ispdb_data/xtra.co.nz +22 -0
  234. data/ispdb_data/yahoo.co.jp +22 -0
  235. data/ispdb_data/yahoo.com +41 -0
  236. data/ispdb_data/yandex.ru +39 -0
  237. data/ispdb_data/ybb.ne.jp +22 -0
  238. data/ispdb_data/yellow.plala.or.jp +24 -0
  239. data/ispdb_data/ymail.plala.or.jp +24 -0
  240. data/ispdb_data/ypost.plala.or.jp +24 -0
  241. data/ispdb_data/ziggo.nl +25 -0
  242. data/ispdb_data/zmail.plala.or.jp +24 -0
  243. data/ispdb_data/zpost.plala.or.jp +24 -0
  244. data/lib/mail_autoconfig/client_config.rb +118 -0
  245. data/lib/mail_autoconfig/email_address.rb +53 -0
  246. data/lib/mail_autoconfig/server.rb +73 -0
  247. data/lib/mail_autoconfig/version.rb +4 -0
  248. data/lib/mail_autoconfig.rb +35 -0
  249. data/mail_autoconfig.gemspec +27 -0
  250. data/spec/client_config_spec.rb +50 -0
  251. data/spec/email_address_spec.rb +42 -0
  252. data/spec/examples/client_config_yahoo.xml +40 -0
  253. data/spec/server_spec.rb +84 -0
  254. metadata +416 -0
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --markup=markdown
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in mail_autoconfig.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,39 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ mail_autoconfig (0.0.1)
5
+ faraday
6
+ nokogiri (~> 1.6)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ diff-lcs (1.2.5)
12
+ faraday (0.9.0)
13
+ multipart-post (>= 1.2, < 3)
14
+ mini_portile (0.5.3)
15
+ multipart-post (2.0.0)
16
+ nokogiri (1.6.1)
17
+ mini_portile (~> 0.5.0)
18
+ rake (10.3.1)
19
+ redcarpet (3.1.1)
20
+ rspec (2.14.1)
21
+ rspec-core (~> 2.14.0)
22
+ rspec-expectations (~> 2.14.0)
23
+ rspec-mocks (~> 2.14.0)
24
+ rspec-core (2.14.8)
25
+ rspec-expectations (2.14.5)
26
+ diff-lcs (>= 1.1.3, < 2.0)
27
+ rspec-mocks (2.14.6)
28
+ yard (0.8.7.4)
29
+
30
+ PLATFORMS
31
+ ruby
32
+
33
+ DEPENDENCIES
34
+ bundler (~> 1.5)
35
+ mail_autoconfig!
36
+ rake
37
+ redcarpet
38
+ rspec (~> 2.14)
39
+ yard
data/LICENSE.txt ADDED
@@ -0,0 +1,25 @@
1
+ Copyright (c) 2014 Dan Wentworth
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+
25
+ Includes the Mozilla ISPDb, which is public domain (http://creativecommons.org/licenses/publicdomain/)
data/README.md ADDED
@@ -0,0 +1,57 @@
1
+ # Mail Autoconfig
2
+
3
+ A ruby gem to detect and parse any Thunderbird autoconfig file for a domain. Includes a copy of the Mozilla ISPDB.
4
+
5
+ For general information about autoconf visit (https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Autoconfiguration),
6
+ for the autoconfig schema you should have a look at (https://wiki.mozilla.org/Thunderbird:Autoconfiguration:ConfigFileFormat).
7
+
8
+ Although I've tried to keep parsing as accurate as possible, there may be omissions or errors. Please feel free
9
+ to submit a patch in these cases.
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ gem 'mail_autoconfig'
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install mail_autoconfig
24
+
25
+ ## Usage
26
+
27
+ Generally, you just want to get any associated configuration for an email address. In this case we'll use
28
+ 'example@gmail.com'.
29
+
30
+ ```ruby
31
+ client_config = MailAutoconfig::for_address('example@gmail.com')
32
+ client_config.short_name
33
+ => "GMail"
34
+ outbound_server = client_config.outgoing_servers.first
35
+ outbound_server.protocol
36
+ => "smtp"
37
+ outnound_server.hostname
38
+ => "smtp.googlemail.com"
39
+ ```
40
+
41
+ When searching for a configuration, autoconfig first looks to it's local database for the domain of the address,
42
+ if this fails it will check `http://autoconfig.#{domain}/mail/config-v1.1.xml` and then
43
+ `http://#{domain}/.well-known/autoconfig/mail/config-v1.1.xml`. If both of these fail, Autoconfig will then look up
44
+ the MX records for the address, and perform the same searches on the domain of the primary MX record.
45
+
46
+ ### Updating the database
47
+ You may wish to update the database at some point to fetch the latest from Mozilla's ISPDB,
48
+ just run the rake task `rake fetch_ispdb`.
49
+
50
+ ## Contributing
51
+
52
+ 1. Fork it ( http://github.com/atech/mail_autoconfig/fork )
53
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
54
+ 2. Run the test suite, check out haven't broken anything (`bundle exec rspec spec`)
55
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
56
+ 4. Push to the branch (`git push origin my-new-feature`)
57
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require "bundler/gem_tasks"
2
+ require "mail_autoconfig"
3
+
4
+ desc "Checkout the latest copy of the mozilla ispdb"
5
+ task :fetch_ispdb do
6
+ svn_url = MailAutoconfig.ispdb_svn_url
7
+ local_path = MailAutoconfig.local_ispdb_path
8
+ puts "Exporting..."
9
+ `svn export --force #{svn_url} #{local_path}`
10
+ `rm #{local_path}/README`
11
+ end
@@ -0,0 +1,1353 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: MailAutoconfig::ClientConfig
8
+
9
+ &mdash; Documentation by YARD 0.8.7.4
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../';
20
+ framesUrl = "../frames.html#!MailAutoconfig/ClientConfig.html";
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../_index.html">Index (C)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../MailAutoconfig.html" title="MailAutoconfig (module)">MailAutoconfig</a></span></span>
36
+ &raquo;
37
+ <span class="title">ClientConfig</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Class: MailAutoconfig::ClientConfig
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Object</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">MailAutoconfig::ClientConfig</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ <dt class="r2 last">Defined in:</dt>
97
+ <dd class="r2 last">lib/mail_autoconfig/client_config.rb</dd>
98
+
99
+ </dl>
100
+ <div class="clear"></div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+ <p>Parse the Autoconfig XML file and create a ruby representation</p>
105
+
106
+
107
+ </div>
108
+ </div>
109
+ <div class="tags">
110
+
111
+
112
+ </div>
113
+
114
+
115
+
116
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
117
+ <ul class="summary">
118
+
119
+ <li class="public ">
120
+ <span class="summary_signature">
121
+
122
+ <a href="#config-instance_method" title="#config (instance method)">- (Object) <strong>config</strong> </a>
123
+
124
+
125
+
126
+ </span>
127
+
128
+
129
+
130
+
131
+ <span class="note title readonly">readonly</span>
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute config.</p>
142
+ </div></span>
143
+
144
+ </li>
145
+
146
+
147
+ </ul>
148
+
149
+
150
+
151
+
152
+
153
+ <h2>
154
+ Class Method Summary
155
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
156
+ </h2>
157
+
158
+ <ul class="summary">
159
+
160
+ <li class="public ">
161
+ <span class="summary_signature">
162
+
163
+ <a href="#from_file-class_method" title="from_file (class method)">+ (ClientConfig) <strong>from_file</strong>(path) </a>
164
+
165
+
166
+
167
+ </span>
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+ <span class="summary_desc"><div class='inline'><p>Build a configuration from the specified path.</p>
178
+ </div></span>
179
+
180
+ </li>
181
+
182
+
183
+ <li class="public ">
184
+ <span class="summary_signature">
185
+
186
+ <a href="#search-class_method" title="search (class method)">+ (ClientConfig) <strong>search</strong>(domain) </a>
187
+
188
+
189
+
190
+ </span>
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+ <span class="summary_desc"><div class='inline'><p>Try to find a configuration for the given domain, locally or remotely.</p>
201
+ </div></span>
202
+
203
+ </li>
204
+
205
+
206
+ <li class="public ">
207
+ <span class="summary_signature">
208
+
209
+ <a href="#search_autoconfig_domain-class_method" title="search_autoconfig_domain (class method)">+ (ClientConfig) <strong>search_autoconfig_domain</strong>(domain) </a>
210
+
211
+
212
+
213
+ </span>
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+ <span class="summary_desc"><div class='inline'><p>Try a remote server for the configuration for the domain.</p>
224
+ </div></span>
225
+
226
+ </li>
227
+
228
+
229
+ <li class="public ">
230
+ <span class="summary_signature">
231
+
232
+ <a href="#search_local_files-class_method" title="search_local_files (class method)">+ (ClientConfig) <strong>search_local_files</strong>(domain) </a>
233
+
234
+
235
+
236
+ </span>
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+ <span class="summary_desc"><div class='inline'><p>Search local ISPDB for configurations matching the domain.</p>
247
+ </div></span>
248
+
249
+ </li>
250
+
251
+
252
+ </ul>
253
+
254
+ <h2>
255
+ Instance Method Summary
256
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
257
+ </h2>
258
+
259
+ <ul class="summary">
260
+
261
+ <li class="public ">
262
+ <span class="summary_signature">
263
+
264
+ <a href="#domains-instance_method" title="#domains (instance method)">- (Array) <strong>domains</strong> </a>
265
+
266
+
267
+
268
+ </span>
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+ <span class="summary_desc"><div class='inline'><p>A list of domain aliases that this configuration applies to.</p>
279
+ </div></span>
280
+
281
+ </li>
282
+
283
+
284
+ <li class="public ">
285
+ <span class="summary_signature">
286
+
287
+ <a href="#incoming_servers-instance_method" title="#incoming_servers (instance method)">- (Array) <strong>incoming_servers</strong> </a>
288
+
289
+
290
+
291
+ </span>
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+ <span class="summary_desc"><div class='inline'><p>The incoming servers for this configuration.</p>
302
+ </div></span>
303
+
304
+ </li>
305
+
306
+
307
+ <li class="public ">
308
+ <span class="summary_signature">
309
+
310
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (ClientConfig) <strong>initialize</strong>(client_config_xml) </a>
311
+
312
+
313
+
314
+ </span>
315
+
316
+
317
+ <span class="note title constructor">constructor</span>
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+ <span class="summary_desc"><div class='inline'><p>A new instance of ClientConfig.</p>
327
+ </div></span>
328
+
329
+ </li>
330
+
331
+
332
+ <li class="public ">
333
+ <span class="summary_signature">
334
+
335
+ <a href="#name-instance_method" title="#name (instance method)">- (String) <strong>name</strong> </a>
336
+
337
+
338
+
339
+ </span>
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+ <span class="summary_desc"><div class='inline'><p>The full name of this service (e.g. Google Mail).</p>
350
+ </div></span>
351
+
352
+ </li>
353
+
354
+
355
+ <li class="public ">
356
+ <span class="summary_signature">
357
+
358
+ <a href="#outgoing_servers-instance_method" title="#outgoing_servers (instance method)">- (Array) <strong>outgoing_servers</strong> </a>
359
+
360
+
361
+
362
+ </span>
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+ <span class="summary_desc"><div class='inline'><p>The outgoing servers for this configuration.</p>
373
+ </div></span>
374
+
375
+ </li>
376
+
377
+
378
+ <li class="public ">
379
+ <span class="summary_signature">
380
+
381
+ <a href="#provider_id-instance_method" title="#provider_id (instance method)">- (String) <strong>provider_id</strong> </a>
382
+
383
+
384
+
385
+ </span>
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+ <span class="summary_desc"><div class='inline'><p>The unique string identifying this service (e.g. googlemail.com).</p>
396
+ </div></span>
397
+
398
+ </li>
399
+
400
+
401
+ <li class="public ">
402
+ <span class="summary_signature">
403
+
404
+ <a href="#short_name-instance_method" title="#short_name (instance method)">- (String) <strong>short_name</strong> </a>
405
+
406
+
407
+
408
+ </span>
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+ <span class="summary_desc"><div class='inline'><p>The short name of this service (e.g. GMail).</p>
419
+ </div></span>
420
+
421
+ </li>
422
+
423
+
424
+ <li class="public ">
425
+ <span class="summary_signature">
426
+
427
+ <a href="#valid_for_domain%3F-instance_method" title="#valid_for_domain? (instance method)">- (Boolean) <strong>valid_for_domain?</strong>(domain) </a>
428
+
429
+
430
+
431
+ </span>
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+ <span class="summary_desc"><div class='inline'><p>Does this configuration file apply to the specified domain?.</p>
442
+ </div></span>
443
+
444
+ </li>
445
+
446
+
447
+ </ul>
448
+
449
+
450
+ <div id="constructor_details" class="method_details_list">
451
+ <h2>Constructor Details</h2>
452
+
453
+ <div class="method_details first">
454
+ <h3 class="signature first" id="initialize-instance_method">
455
+
456
+ - (<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>) <strong>initialize</strong>(client_config_xml)
457
+
458
+
459
+
460
+
461
+
462
+ </h3><div class="docstring">
463
+ <div class="discussion">
464
+ <p>Returns a new instance of ClientConfig</p>
465
+
466
+
467
+ </div>
468
+ </div>
469
+ <div class="tags">
470
+ <p class="tag_title">Parameters:</p>
471
+ <ul class="param">
472
+
473
+ <li>
474
+
475
+ <span class='name'>client_config_xml</span>
476
+
477
+
478
+ <span class='type'>(<tt>String</tt>)</span>
479
+
480
+
481
+
482
+ &mdash;
483
+ <div class='inline'><p>the raw XML to build the ClientConfig from.</p>
484
+ </div>
485
+
486
+ </li>
487
+
488
+ </ul>
489
+
490
+
491
+ </div><table class="source_code">
492
+ <tr>
493
+ <td>
494
+ <pre class="lines">
495
+
496
+
497
+ 59
498
+ 60
499
+ 61</pre>
500
+ </td>
501
+ <td>
502
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 59</span>
503
+
504
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_client_config_xml'>client_config_xml</span><span class='rparen'>)</span>
505
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>Nokogiri</span><span class='op'>::</span><span class='const'>XML</span><span class='lparen'>(</span><span class='id identifier rubyid_client_config_xml'>client_config_xml</span><span class='rparen'>)</span>
506
+ <span class='kw'>end</span></pre>
507
+ </td>
508
+ </tr>
509
+ </table>
510
+ </div>
511
+
512
+ </div>
513
+
514
+ <div id="instance_attr_details" class="attr_details">
515
+ <h2>Instance Attribute Details</h2>
516
+
517
+
518
+ <span id=""></span>
519
+ <div class="method_details first">
520
+ <h3 class="signature first" id="config-instance_method">
521
+
522
+ - (<tt>Object</tt>) <strong>config</strong> <span class="extras">(readonly)</span>
523
+
524
+
525
+
526
+
527
+
528
+ </h3><div class="docstring">
529
+ <div class="discussion">
530
+ <p>Returns the value of attribute config</p>
531
+
532
+
533
+ </div>
534
+ </div>
535
+ <div class="tags">
536
+
537
+
538
+ </div><table class="source_code">
539
+ <tr>
540
+ <td>
541
+ <pre class="lines">
542
+
543
+
544
+ 6
545
+ 7
546
+ 8</pre>
547
+ </td>
548
+ <td>
549
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 6</span>
550
+
551
+ <span class='kw'>def</span> <span class='id identifier rubyid_config'>config</span>
552
+ <span class='ivar'>@config</span>
553
+ <span class='kw'>end</span></pre>
554
+ </td>
555
+ </tr>
556
+ </table>
557
+ </div>
558
+
559
+ </div>
560
+
561
+
562
+ <div id="class_method_details" class="method_details_list">
563
+ <h2>Class Method Details</h2>
564
+
565
+
566
+ <div class="method_details first">
567
+ <h3 class="signature first" id="from_file-class_method">
568
+
569
+ + (<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>) <strong>from_file</strong>(path)
570
+
571
+
572
+
573
+
574
+
575
+ </h3><div class="docstring">
576
+ <div class="discussion">
577
+ <p>Build a configuration from the specified path</p>
578
+
579
+
580
+ </div>
581
+ </div>
582
+ <div class="tags">
583
+ <p class="tag_title">Parameters:</p>
584
+ <ul class="param">
585
+
586
+ <li>
587
+
588
+ <span class='name'>path</span>
589
+
590
+
591
+ <span class='type'>(<tt>String</tt>)</span>
592
+
593
+
594
+
595
+ &mdash;
596
+ <div class='inline'><p>the loction of the client configuartion file</p>
597
+ </div>
598
+
599
+ </li>
600
+
601
+ </ul>
602
+
603
+ <p class="tag_title">Returns:</p>
604
+ <ul class="return">
605
+
606
+ <li>
607
+
608
+
609
+ <span class='type'>(<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>)</span>
610
+
611
+
612
+
613
+ &mdash;
614
+ <div class='inline'><p>new client configuration</p>
615
+ </div>
616
+
617
+ </li>
618
+
619
+ </ul>
620
+
621
+ </div><table class="source_code">
622
+ <tr>
623
+ <td>
624
+ <pre class="lines">
625
+
626
+
627
+ 12
628
+ 13
629
+ 14</pre>
630
+ </td>
631
+ <td>
632
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 12</span>
633
+
634
+ <span class='kw'>def</span> <span class='id identifier rubyid_from_file'>from_file</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
635
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span><span class='rparen'>)</span>
636
+ <span class='kw'>end</span></pre>
637
+ </td>
638
+ </tr>
639
+ </table>
640
+ </div>
641
+
642
+ <div class="method_details ">
643
+ <h3 class="signature " id="search-class_method">
644
+
645
+ + (<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>) <strong>search</strong>(domain)
646
+
647
+
648
+
649
+
650
+
651
+ </h3><div class="docstring">
652
+ <div class="discussion">
653
+ <p>Try to find a configuration for the given domain, locally or remotely</p>
654
+
655
+
656
+ </div>
657
+ </div>
658
+ <div class="tags">
659
+ <p class="tag_title">Parameters:</p>
660
+ <ul class="param">
661
+
662
+ <li>
663
+
664
+ <span class='name'>domain</span>
665
+
666
+
667
+ <span class='type'>(<tt>String</tt>)</span>
668
+
669
+
670
+
671
+ &mdash;
672
+ <div class='inline'><p>the domain to lookup the configuration for</p>
673
+ </div>
674
+
675
+ </li>
676
+
677
+ </ul>
678
+
679
+ <p class="tag_title">Returns:</p>
680
+ <ul class="return">
681
+
682
+ <li>
683
+
684
+
685
+ <span class='type'>(<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>)</span>
686
+
687
+
688
+
689
+ &mdash;
690
+ <div class='inline'><p>client configuration for the domain</p>
691
+ </div>
692
+
693
+ </li>
694
+
695
+ </ul>
696
+
697
+ </div><table class="source_code">
698
+ <tr>
699
+ <td>
700
+ <pre class="lines">
701
+
702
+
703
+ 19
704
+ 20
705
+ 21</pre>
706
+ </td>
707
+ <td>
708
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 19</span>
709
+
710
+ <span class='kw'>def</span> <span class='id identifier rubyid_search'>search</span><span class='lparen'>(</span><span class='id identifier rubyid_domain'>domain</span><span class='rparen'>)</span>
711
+ <span class='id identifier rubyid_search_local_files'>search_local_files</span><span class='lparen'>(</span><span class='id identifier rubyid_domain'>domain</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_search_autoconfig_domain'>search_autoconfig_domain</span><span class='lparen'>(</span><span class='id identifier rubyid_domain'>domain</span><span class='rparen'>)</span>
712
+ <span class='kw'>end</span></pre>
713
+ </td>
714
+ </tr>
715
+ </table>
716
+ </div>
717
+
718
+ <div class="method_details ">
719
+ <h3 class="signature " id="search_autoconfig_domain-class_method">
720
+
721
+ + (<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>) <strong>search_autoconfig_domain</strong>(domain)
722
+
723
+
724
+
725
+
726
+
727
+ </h3><div class="docstring">
728
+ <div class="discussion">
729
+ <p>Try a remote server for the configuration for the domain.
730
+ Search <code>http://autoconfig.#{domain}/mail/config-v1.1.xml</code> first,
731
+ followed by <code>http://#{domain}/.well-known/autoconfig/mail/config-v1.1.xml</code></p>
732
+
733
+
734
+ </div>
735
+ </div>
736
+ <div class="tags">
737
+ <p class="tag_title">Parameters:</p>
738
+ <ul class="param">
739
+
740
+ <li>
741
+
742
+ <span class='name'>domain</span>
743
+
744
+
745
+ <span class='type'>(<tt>String</tt>)</span>
746
+
747
+
748
+
749
+ &mdash;
750
+ <div class='inline'><p>the domain to look for</p>
751
+ </div>
752
+
753
+ </li>
754
+
755
+ </ul>
756
+
757
+ <p class="tag_title">Returns:</p>
758
+ <ul class="return">
759
+
760
+ <li>
761
+
762
+
763
+ <span class='type'>(<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>)</span>
764
+
765
+
766
+
767
+ &mdash;
768
+ <div class='inline'><p>the client configuration for the domain</p>
769
+ </div>
770
+
771
+ </li>
772
+
773
+ </ul>
774
+
775
+ </div><table class="source_code">
776
+ <tr>
777
+ <td>
778
+ <pre class="lines">
779
+
780
+
781
+ 40
782
+ 41
783
+ 42
784
+ 43
785
+ 44
786
+ 45
787
+ 46
788
+ 47
789
+ 48
790
+ 49
791
+ 50
792
+ 51
793
+ 52
794
+ 53
795
+ 54
796
+ 55</pre>
797
+ </td>
798
+ <td>
799
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 40</span>
800
+
801
+ <span class='kw'>def</span> <span class='id identifier rubyid_search_autoconfig_domain'>search_autoconfig_domain</span><span class='lparen'>(</span><span class='id identifier rubyid_domain'>domain</span><span class='rparen'>)</span>
802
+ <span class='id identifier rubyid_last_config'>last_config</span> <span class='op'>=</span> <span class='kw'>false</span>
803
+ <span class='id identifier rubyid_match'>match</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://autoconfig.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_domain'>domain</span><span class='rbrace'>}</span><span class='tstring_content'>/mail/config-v1.1.xml</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_domain'>domain</span><span class='rbrace'>}</span><span class='tstring_content'>/.well-known/autoconfig/mail/config-v1.1.xml</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_url'>url</span><span class='op'>|</span>
804
+ <span class='kw'>begin</span>
805
+ <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>Faraday</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='rparen'>)</span>
806
+ <span class='kw'>if</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_status'>status</span> <span class='op'>==</span> <span class='int'>200</span>
807
+ <span class='id identifier rubyid_last_config'>last_config</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span><span class='rparen'>)</span>
808
+ <span class='kw'>else</span>
809
+ <span class='kw'>false</span>
810
+ <span class='kw'>end</span>
811
+ <span class='kw'>rescue</span>
812
+ <span class='kw'>false</span>
813
+ <span class='kw'>end</span>
814
+ <span class='kw'>end</span>
815
+ <span class='id identifier rubyid_match'>match</span> <span class='op'>?</span> <span class='id identifier rubyid_last_config'>last_config</span> <span class='op'>:</span> <span class='kw'>false</span>
816
+ <span class='kw'>end</span></pre>
817
+ </td>
818
+ </tr>
819
+ </table>
820
+ </div>
821
+
822
+ <div class="method_details ">
823
+ <h3 class="signature " id="search_local_files-class_method">
824
+
825
+ + (<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>) <strong>search_local_files</strong>(domain)
826
+
827
+
828
+
829
+
830
+
831
+ </h3><div class="docstring">
832
+ <div class="discussion">
833
+ <p>Search local ISPDB for configurations matching the domain</p>
834
+
835
+
836
+ </div>
837
+ </div>
838
+ <div class="tags">
839
+ <p class="tag_title">Parameters:</p>
840
+ <ul class="param">
841
+
842
+ <li>
843
+
844
+ <span class='name'>domain</span>
845
+
846
+
847
+ <span class='type'>(<tt>String</tt>)</span>
848
+
849
+
850
+
851
+ &mdash;
852
+ <div class='inline'><p>the domain to look for</p>
853
+ </div>
854
+
855
+ </li>
856
+
857
+ </ul>
858
+
859
+ <p class="tag_title">Returns:</p>
860
+ <ul class="return">
861
+
862
+ <li>
863
+
864
+
865
+ <span class='type'>(<tt><span class='object_link'><a href="" title="MailAutoconfig::ClientConfig (class)">ClientConfig</a></span></tt>)</span>
866
+
867
+
868
+
869
+ &mdash;
870
+ <div class='inline'><p>client configuration for the domain</p>
871
+ </div>
872
+
873
+ </li>
874
+
875
+ </ul>
876
+
877
+ </div><table class="source_code">
878
+ <tr>
879
+ <td>
880
+ <pre class="lines">
881
+
882
+
883
+ 26
884
+ 27
885
+ 28
886
+ 29
887
+ 30
888
+ 31
889
+ 32
890
+ 33</pre>
891
+ </td>
892
+ <td>
893
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 26</span>
894
+
895
+ <span class='kw'>def</span> <span class='id identifier rubyid_search_local_files'>search_local_files</span><span class='lparen'>(</span><span class='id identifier rubyid_domain'>domain</span><span class='rparen'>)</span>
896
+ <span class='id identifier rubyid_last_config'>last_config</span> <span class='op'>=</span> <span class='kw'>false</span>
897
+ <span class='id identifier rubyid_match'>match</span> <span class='op'>=</span> <span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_glob'>glob</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='const'>MailAutoconfig</span><span class='period'>.</span><span class='id identifier rubyid_local_ispdb_path'>local_ispdb_path</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>*</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_config_file'>config_file</span><span class='op'>|</span>
898
+ <span class='id identifier rubyid_last_config'>last_config</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_from_file'>from_file</span><span class='lparen'>(</span><span class='id identifier rubyid_config_file'>config_file</span><span class='rparen'>)</span>
899
+ <span class='id identifier rubyid_last_config'>last_config</span><span class='period'>.</span><span class='id identifier rubyid_valid_for_domain?'>valid_for_domain?</span><span class='lparen'>(</span><span class='id identifier rubyid_domain'>domain</span><span class='rparen'>)</span>
900
+ <span class='kw'>end</span>
901
+ <span class='id identifier rubyid_match'>match</span> <span class='op'>?</span> <span class='id identifier rubyid_last_config'>last_config</span> <span class='op'>:</span> <span class='kw'>false</span>
902
+ <span class='kw'>end</span></pre>
903
+ </td>
904
+ </tr>
905
+ </table>
906
+ </div>
907
+
908
+ </div>
909
+
910
+ <div id="instance_method_details" class="method_details_list">
911
+ <h2>Instance Method Details</h2>
912
+
913
+
914
+ <div class="method_details first">
915
+ <h3 class="signature first" id="domains-instance_method">
916
+
917
+ - (<tt>Array</tt>) <strong>domains</strong>
918
+
919
+
920
+
921
+
922
+
923
+ </h3><div class="docstring">
924
+ <div class="discussion">
925
+ <p>A list of domain aliases that this configuration applies to</p>
926
+
927
+
928
+ </div>
929
+ </div>
930
+ <div class="tags">
931
+
932
+ <p class="tag_title">Returns:</p>
933
+ <ul class="return">
934
+
935
+ <li>
936
+
937
+
938
+ <span class='type'>(<tt>Array</tt>)</span>
939
+
940
+
941
+
942
+ &mdash;
943
+ <div class='inline'><p>list of domains for this configuration</p>
944
+ </div>
945
+
946
+ </li>
947
+
948
+ </ul>
949
+
950
+ </div><table class="source_code">
951
+ <tr>
952
+ <td>
953
+ <pre class="lines">
954
+
955
+
956
+ 65
957
+ 66
958
+ 67</pre>
959
+ </td>
960
+ <td>
961
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 65</span>
962
+
963
+ <span class='kw'>def</span> <span class='id identifier rubyid_domains'>domains</span>
964
+ <span class='ivar'>@domains</span> <span class='op'>||=</span> <span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_xpath'>xpath</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>domain</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_domain'>domain</span><span class='op'>|</span> <span class='id identifier rubyid_domain'>domain</span><span class='period'>.</span><span class='id identifier rubyid_content'>content</span> <span class='rbrace'>}</span>
965
+ <span class='kw'>end</span></pre>
966
+ </td>
967
+ </tr>
968
+ </table>
969
+ </div>
970
+
971
+ <div class="method_details ">
972
+ <h3 class="signature " id="incoming_servers-instance_method">
973
+
974
+ - (<tt>Array</tt>) <strong>incoming_servers</strong>
975
+
976
+
977
+
978
+
979
+
980
+ </h3><div class="docstring">
981
+ <div class="discussion">
982
+ <p>The incoming servers for this configuration. There can be multiple servers per
983
+ configuration e.g. for IMAP and POP3, ordered in list of preference.</p>
984
+
985
+
986
+ </div>
987
+ </div>
988
+ <div class="tags">
989
+
990
+ <p class="tag_title">Returns:</p>
991
+ <ul class="return">
992
+
993
+ <li>
994
+
995
+
996
+ <span class='type'>(<tt>Array</tt>)</span>
997
+
998
+
999
+
1000
+ &mdash;
1001
+ <div class='inline'><p>list of incoming servers</p>
1002
+ </div>
1003
+
1004
+ </li>
1005
+
1006
+ </ul>
1007
+
1008
+ </div><table class="source_code">
1009
+ <tr>
1010
+ <td>
1011
+ <pre class="lines">
1012
+
1013
+
1014
+ 94
1015
+ 95
1016
+ 96
1017
+ 97
1018
+ 98</pre>
1019
+ </td>
1020
+ <td>
1021
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 94</span>
1022
+
1023
+ <span class='kw'>def</span> <span class='id identifier rubyid_incoming_servers'>incoming_servers</span>
1024
+ <span class='ivar'>@incoming_servers</span> <span class='op'>||=</span> <span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_xpath'>xpath</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>incomingServer</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_incoming'>incoming</span><span class='op'>|</span>
1025
+ <span class='const'>MailAutoconfig</span><span class='op'>::</span><span class='const'>IncomingServer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_incoming'>incoming</span><span class='rparen'>)</span>
1026
+ <span class='kw'>end</span>
1027
+ <span class='kw'>end</span></pre>
1028
+ </td>
1029
+ </tr>
1030
+ </table>
1031
+ </div>
1032
+
1033
+ <div class="method_details ">
1034
+ <h3 class="signature " id="name-instance_method">
1035
+
1036
+ - (<tt>String</tt>) <strong>name</strong>
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+ </h3><div class="docstring">
1043
+ <div class="discussion">
1044
+ <p>Returns the full name of this service (e.g. Google Mail)</p>
1045
+
1046
+
1047
+ </div>
1048
+ </div>
1049
+ <div class="tags">
1050
+
1051
+ <p class="tag_title">Returns:</p>
1052
+ <ul class="return">
1053
+
1054
+ <li>
1055
+
1056
+
1057
+ <span class='type'>(<tt>String</tt>)</span>
1058
+
1059
+
1060
+
1061
+ &mdash;
1062
+ <div class='inline'><p>the full name of this service (e.g. Google Mail)</p>
1063
+ </div>
1064
+
1065
+ </li>
1066
+
1067
+ </ul>
1068
+
1069
+ </div><table class="source_code">
1070
+ <tr>
1071
+ <td>
1072
+ <pre class="lines">
1073
+
1074
+
1075
+ 82
1076
+ 83
1077
+ 84</pre>
1078
+ </td>
1079
+ <td>
1080
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 82</span>
1081
+
1082
+ <span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
1083
+ <span class='ivar'>@name</span> <span class='op'>||=</span> <span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_xpath'>xpath</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>displayName</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_content'>content</span>
1084
+ <span class='kw'>end</span></pre>
1085
+ </td>
1086
+ </tr>
1087
+ </table>
1088
+ </div>
1089
+
1090
+ <div class="method_details ">
1091
+ <h3 class="signature " id="outgoing_servers-instance_method">
1092
+
1093
+ - (<tt>Array</tt>) <strong>outgoing_servers</strong>
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+ </h3><div class="docstring">
1100
+ <div class="discussion">
1101
+ <p>The outgoing servers for this configuration. There can be multiple servers per
1102
+ configuration, ordered in list of preference.</p>
1103
+
1104
+
1105
+ </div>
1106
+ </div>
1107
+ <div class="tags">
1108
+
1109
+ <p class="tag_title">Returns:</p>
1110
+ <ul class="return">
1111
+
1112
+ <li>
1113
+
1114
+
1115
+ <span class='type'>(<tt>Array</tt>)</span>
1116
+
1117
+
1118
+
1119
+ &mdash;
1120
+ <div class='inline'><p>list of outgoing servers</p>
1121
+ </div>
1122
+
1123
+ </li>
1124
+
1125
+ </ul>
1126
+
1127
+ </div><table class="source_code">
1128
+ <tr>
1129
+ <td>
1130
+ <pre class="lines">
1131
+
1132
+
1133
+ 103
1134
+ 104
1135
+ 105
1136
+ 106
1137
+ 107</pre>
1138
+ </td>
1139
+ <td>
1140
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 103</span>
1141
+
1142
+ <span class='kw'>def</span> <span class='id identifier rubyid_outgoing_servers'>outgoing_servers</span>
1143
+ <span class='ivar'>@outgoing_servers</span> <span class='op'>||=</span> <span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_xpath'>xpath</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>outgoingServer</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_outgoing'>outgoing</span><span class='op'>|</span>
1144
+ <span class='const'>MailAutoconfig</span><span class='op'>::</span><span class='const'>OutgoingServer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_outgoing'>outgoing</span><span class='rparen'>)</span>
1145
+ <span class='kw'>end</span>
1146
+ <span class='kw'>end</span></pre>
1147
+ </td>
1148
+ </tr>
1149
+ </table>
1150
+ </div>
1151
+
1152
+ <div class="method_details ">
1153
+ <h3 class="signature " id="provider_id-instance_method">
1154
+
1155
+ - (<tt>String</tt>) <strong>provider_id</strong>
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+ </h3><div class="docstring">
1162
+ <div class="discussion">
1163
+ <p>Returns The unique string identifying this service (e.g. googlemail.com)</p>
1164
+
1165
+
1166
+ </div>
1167
+ </div>
1168
+ <div class="tags">
1169
+
1170
+ <p class="tag_title">Returns:</p>
1171
+ <ul class="return">
1172
+
1173
+ <li>
1174
+
1175
+
1176
+ <span class='type'>(<tt>String</tt>)</span>
1177
+
1178
+
1179
+
1180
+ &mdash;
1181
+ <div class='inline'><p>The unique string identifying this service (e.g. googlemail.com)</p>
1182
+ </div>
1183
+
1184
+ </li>
1185
+
1186
+ </ul>
1187
+
1188
+ </div><table class="source_code">
1189
+ <tr>
1190
+ <td>
1191
+ <pre class="lines">
1192
+
1193
+
1194
+ 77
1195
+ 78
1196
+ 79</pre>
1197
+ </td>
1198
+ <td>
1199
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 77</span>
1200
+
1201
+ <span class='kw'>def</span> <span class='id identifier rubyid_provider_id'>provider_id</span>
1202
+ <span class='ivar'>@provider_id</span> <span class='op'>||=</span> <span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_attr'>attr</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>id</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
1203
+ <span class='kw'>end</span></pre>
1204
+ </td>
1205
+ </tr>
1206
+ </table>
1207
+ </div>
1208
+
1209
+ <div class="method_details ">
1210
+ <h3 class="signature " id="short_name-instance_method">
1211
+
1212
+ - (<tt>String</tt>) <strong>short_name</strong>
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+ </h3><div class="docstring">
1219
+ <div class="discussion">
1220
+ <p>Returns the short name of this service (e.g. GMail)</p>
1221
+
1222
+
1223
+ </div>
1224
+ </div>
1225
+ <div class="tags">
1226
+
1227
+ <p class="tag_title">Returns:</p>
1228
+ <ul class="return">
1229
+
1230
+ <li>
1231
+
1232
+
1233
+ <span class='type'>(<tt>String</tt>)</span>
1234
+
1235
+
1236
+
1237
+ &mdash;
1238
+ <div class='inline'><p>the short name of this service (e.g. GMail)</p>
1239
+ </div>
1240
+
1241
+ </li>
1242
+
1243
+ </ul>
1244
+
1245
+ </div><table class="source_code">
1246
+ <tr>
1247
+ <td>
1248
+ <pre class="lines">
1249
+
1250
+
1251
+ 87
1252
+ 88
1253
+ 89</pre>
1254
+ </td>
1255
+ <td>
1256
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 87</span>
1257
+
1258
+ <span class='kw'>def</span> <span class='id identifier rubyid_short_name'>short_name</span>
1259
+ <span class='ivar'>@short_name</span> <span class='op'>||=</span> <span class='id identifier rubyid_provider'>provider</span><span class='period'>.</span><span class='id identifier rubyid_xpath'>xpath</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>displayShortName</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_content'>content</span>
1260
+ <span class='kw'>end</span></pre>
1261
+ </td>
1262
+ </tr>
1263
+ </table>
1264
+ </div>
1265
+
1266
+ <div class="method_details ">
1267
+ <h3 class="signature " id="valid_for_domain?-instance_method">
1268
+
1269
+ - (<tt>Boolean</tt>) <strong>valid_for_domain?</strong>(domain)
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+ </h3><div class="docstring">
1276
+ <div class="discussion">
1277
+ <p>Does this configuration file apply to the specified domain?</p>
1278
+
1279
+
1280
+ </div>
1281
+ </div>
1282
+ <div class="tags">
1283
+ <p class="tag_title">Parameters:</p>
1284
+ <ul class="param">
1285
+
1286
+ <li>
1287
+
1288
+ <span class='name'>domain</span>
1289
+
1290
+
1291
+ <span class='type'>(<tt>String</tt>)</span>
1292
+
1293
+
1294
+
1295
+ &mdash;
1296
+ <div class='inline'><p>the domain to check</p>
1297
+ </div>
1298
+
1299
+ </li>
1300
+
1301
+ </ul>
1302
+
1303
+ <p class="tag_title">Returns:</p>
1304
+ <ul class="return">
1305
+
1306
+ <li>
1307
+
1308
+
1309
+ <span class='type'>(<tt>Boolean</tt>)</span>
1310
+
1311
+
1312
+
1313
+ &mdash;
1314
+ <div class='inline'><p>Does the domain match?</p>
1315
+ </div>
1316
+
1317
+ </li>
1318
+
1319
+ </ul>
1320
+
1321
+ </div><table class="source_code">
1322
+ <tr>
1323
+ <td>
1324
+ <pre class="lines">
1325
+
1326
+
1327
+ 72
1328
+ 73
1329
+ 74</pre>
1330
+ </td>
1331
+ <td>
1332
+ <pre class="code"><span class="info file"># File 'lib/mail_autoconfig/client_config.rb', line 72</span>
1333
+
1334
+ <span class='kw'>def</span> <span class='id identifier rubyid_valid_for_domain?'>valid_for_domain?</span><span class='lparen'>(</span><span class='id identifier rubyid_domain'>domain</span><span class='rparen'>)</span>
1335
+ <span class='id identifier rubyid_domains'>domains</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_d'>d</span><span class='op'>|</span> <span class='id identifier rubyid_d'>d</span> <span class='op'>==</span> <span class='id identifier rubyid_domain'>domain</span><span class='rbrace'>}</span>
1336
+ <span class='kw'>end</span></pre>
1337
+ </td>
1338
+ </tr>
1339
+ </table>
1340
+ </div>
1341
+
1342
+ </div>
1343
+
1344
+ </div>
1345
+
1346
+ <div id="footer">
1347
+ Generated on Tue Apr 22 22:04:36 2014 by
1348
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1349
+ 0.8.7.4 (ruby-1.9.3).
1350
+ </div>
1351
+
1352
+ </body>
1353
+ </html>