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
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig>
3
+ <emailProvider id="xpost.plala.or.jp">
4
+ <domain>xpost.plala.or.jp</domain>
5
+ <displayName>ぷらら</displayName>
6
+ <displayShortName>ぷらら</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>xpost.mail.plala.or.jp</hostname>
9
+ <port>110</port>
10
+ <socketType>plain</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>plain</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>xpost.mail.plala.or.jp</hostname>
16
+ <port>587</port>
17
+ <socketType>plain</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>plain</authentication>
20
+ <addThisServer>true</addThisServer>
21
+ <useGlobalPreferredServer>false</useGlobalPreferredServer>
22
+ </outgoingServer>
23
+ </emailProvider>
24
+ </clientConfig>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig version="1.1">
3
+ <emailProvider id="xs4all.nl">
4
+ <domain>xs4all.nl</domain>
5
+ <displayName>XS4All</displayName>
6
+ <displayShortName>XS4All</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>pops.xs4all.nl</hostname>
9
+ <port>995</port>
10
+ <socketType>SSL</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>password-cleartext</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>smtps.xs4all.nl</hostname>
16
+ <port>465</port>
17
+ <socketType>SSL</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>password-cleartext</authentication>
20
+ </outgoingServer>
21
+ </emailProvider>
22
+ </clientConfig>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig version="1.1">
3
+ <emailProvider id="xtra.co.nz">
4
+ <domain>xtra.co.nz</domain>
5
+ <displayName>Yahoo! Mail</displayName>
6
+ <displayShortName>Yahoo</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>pop3.xtra.co.nz</hostname>
9
+ <port>995</port>
10
+ <socketType>SSL</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>password-cleartext</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>send.xtra.co.nz</hostname>
16
+ <port>465</port>
17
+ <socketType>SSL</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>password-cleartext</authentication>
20
+ </outgoingServer>
21
+ </emailProvider>
22
+ </clientConfig>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig version="1.1">
3
+ <emailProvider id="yahoo.co.jp">
4
+ <domain>yahoo.co.jp</domain>
5
+ <displayName>Yahoo! メール</displayName>
6
+ <displayShortName>Yahoo! メール</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>pop.mail.yahoo.co.jp</hostname>
9
+ <port>995</port>
10
+ <socketType>SSL</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>password-cleartext</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>smtp.mail.yahoo.co.jp</hostname>
16
+ <port>465</port>
17
+ <socketType>SSL</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>password-cleartext</authentication>
20
+ </outgoingServer>
21
+ </emailProvider>
22
+ </clientConfig>
@@ -0,0 +1,41 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig version="1.1">
3
+ <emailProvider id="yahoo.com">
4
+ <domain>yahoo.com</domain>
5
+ <domain>yahoo.de</domain>
6
+ <domain>yahoo.it</domain>
7
+ <domain>yahoo.fr</domain>
8
+ <domain>yahoo.es</domain>
9
+ <domain>yahoo.co.uk</domain>
10
+ <domain>yahoo.co.nz</domain>
11
+ <domain>yahoo.com.au</domain>
12
+ <domain>yahoo.com.ar</domain>
13
+ <domain>yahoo.com.br</domain>
14
+ <domain>yahoo.com.mx</domain>
15
+ <domain>ymail.com</domain>
16
+ <domain>rocketmail.com</domain>
17
+ <displayName>Yahoo! Mail</displayName>
18
+ <displayShortName>Yahoo</displayShortName>
19
+ <incomingServer type="pop3">
20
+ <hostname>pop.mail.yahoo.com</hostname>
21
+ <port>995</port>
22
+ <socketType>SSL</socketType>
23
+ <username>%EMAILADDRESS%</username>
24
+ <authentication>password-cleartext</authentication>
25
+ </incomingServer>
26
+ <incomingServer type="imap">
27
+ <hostname>imap.mail.yahoo.com</hostname>
28
+ <port>993</port>
29
+ <socketType>SSL</socketType>
30
+ <username>%EMAILADDRESS%</username>
31
+ <authentication>password-cleartext</authentication>
32
+ </incomingServer>
33
+ <outgoingServer type="smtp">
34
+ <hostname>smtp.mail.yahoo.com</hostname>
35
+ <port>465</port>
36
+ <socketType>SSL</socketType>
37
+ <username>%EMAILADDRESS%</username>
38
+ <authentication>password-cleartext</authentication>
39
+ </outgoingServer>
40
+ </emailProvider>
41
+ </clientConfig>
@@ -0,0 +1,39 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig version="1.1">
3
+ <emailProvider id="yandex.ru">
4
+ <domain>yandex.ru</domain>
5
+ <domain>yandex.com</domain>
6
+ <domain>yandex.net</domain>
7
+ <domain>yandex.by</domain>
8
+ <domain>yandex.kz</domain>
9
+ <domain>yandex.ua</domain>
10
+ <domain>ya.ru</domain>
11
+ <domain>narod.ru</domain>
12
+ <displayName>Yandex Mail</displayName>
13
+ <displayShortName>Yandex</displayShortName>
14
+ <incomingServer type="imap">
15
+ <hostname>imap.yandex.com</hostname>
16
+ <port>993</port>
17
+ <socketType>SSL</socketType>
18
+ <username>%EMAILADDRESS%</username>
19
+ <authentication>password-cleartext</authentication>
20
+ </incomingServer>
21
+ <incomingServer type="pop3">
22
+ <hostname>pop.yandex.com</hostname>
23
+ <port>995</port>
24
+ <socketType>SSL</socketType>
25
+ <username>%EMAILADDRESS%</username>
26
+ <authentication>password-cleartext</authentication>
27
+ </incomingServer>
28
+ <outgoingServer type="smtp">
29
+ <hostname>smtp.yandex.com</hostname>
30
+ <port>465</port>
31
+ <socketType>SSL</socketType>
32
+ <username>%EMAILADDRESS%</username>
33
+ <authentication>password-cleartext</authentication>
34
+ </outgoingServer>
35
+ <enable visiturl="http://mail.yandex.ru/neo/setup_client">
36
+ <instruction>Check 'Enable IMAP' on Yandex.Mail setup page</instruction>
37
+ </enable>
38
+ </emailProvider>
39
+ </clientConfig>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig version="1.1">
3
+ <emailProvider id="ybb.ne.jp">
4
+ <domain>ybb.ne.jp</domain>
5
+ <displayName>Yahoo! BB</displayName>
6
+ <displayShortName>Yahoo! BB</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>ybbpop.mail.yahoo.co.jp</hostname>
9
+ <port>995</port>
10
+ <socketType>SSL</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>password-cleartext</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>ybbsmtp.mail.yahoo.co.jp</hostname>
16
+ <port>465</port>
17
+ <socketType>SSL</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>password-cleartext</authentication>
20
+ </outgoingServer>
21
+ </emailProvider>
22
+ </clientConfig>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig>
3
+ <emailProvider id="yellow.plala.or.jp">
4
+ <domain>yellow.plala.or.jp</domain>
5
+ <displayName>ぷらら</displayName>
6
+ <displayShortName>ぷらら</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>yellow.mail.plala.or.jp</hostname>
9
+ <port>110</port>
10
+ <socketType>plain</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>plain</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>yellow.mail.plala.or.jp</hostname>
16
+ <port>587</port>
17
+ <socketType>plain</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>plain</authentication>
20
+ <addThisServer>true</addThisServer>
21
+ <useGlobalPreferredServer>false</useGlobalPreferredServer>
22
+ </outgoingServer>
23
+ </emailProvider>
24
+ </clientConfig>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig>
3
+ <emailProvider id="ymail.plala.or.jp">
4
+ <domain>ymail.plala.or.jp</domain>
5
+ <displayName>ぷらら</displayName>
6
+ <displayShortName>ぷらら</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>ymail.mail.plala.or.jp</hostname>
9
+ <port>110</port>
10
+ <socketType>plain</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>plain</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>ymail.mail.plala.or.jp</hostname>
16
+ <port>587</port>
17
+ <socketType>plain</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>plain</authentication>
20
+ <addThisServer>true</addThisServer>
21
+ <useGlobalPreferredServer>false</useGlobalPreferredServer>
22
+ </outgoingServer>
23
+ </emailProvider>
24
+ </clientConfig>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig>
3
+ <emailProvider id="ypost.plala.or.jp">
4
+ <domain>ypost.plala.or.jp</domain>
5
+ <displayName>ぷらら</displayName>
6
+ <displayShortName>ぷらら</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>ypost.mail.plala.or.jp</hostname>
9
+ <port>110</port>
10
+ <socketType>plain</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>plain</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>ypost.mail.plala.or.jp</hostname>
16
+ <port>587</port>
17
+ <socketType>plain</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>plain</authentication>
20
+ <addThisServer>true</addThisServer>
21
+ <useGlobalPreferredServer>false</useGlobalPreferredServer>
22
+ </outgoingServer>
23
+ </emailProvider>
24
+ </clientConfig>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig version="1.1">
3
+ <emailProvider id="ziggo.nl">
4
+ <domain>ziggo.nl</domain>
5
+ <domain>casema.nl</domain>
6
+ <domain>quicknet.nl</domain>
7
+ <domain>home.nl</domain>
8
+ <displayName>Ziggo</displayName>
9
+ <displayShortName>Ziggo</displayShortName>
10
+ <incomingServer type="pop3">
11
+ <hostname>pop.ziggo.nl</hostname>
12
+ <port>110</port>
13
+ <socketType>plain</socketType>
14
+ <username>%EMAILADDRESS%</username>
15
+ <authentication>password-cleartext</authentication>
16
+ </incomingServer>
17
+ <outgoingServer type="smtp">
18
+ <hostname>smtp.ziggo.nl</hostname>
19
+ <port>587</port>
20
+ <socketType>STARTTLS</socketType>
21
+ <username>%EMAILADDRESS%</username>
22
+ <authentication>password-cleartext</authentication>
23
+ </outgoingServer>
24
+ </emailProvider>
25
+ </clientConfig>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig>
3
+ <emailProvider id="zmail.plala.or.jp">
4
+ <domain>zmail.plala.or.jp</domain>
5
+ <displayName>ぷらら</displayName>
6
+ <displayShortName>ぷらら</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>zmail.mail.plala.or.jp</hostname>
9
+ <port>110</port>
10
+ <socketType>plain</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>plain</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>zmail.mail.plala.or.jp</hostname>
16
+ <port>587</port>
17
+ <socketType>plain</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>plain</authentication>
20
+ <addThisServer>true</addThisServer>
21
+ <useGlobalPreferredServer>false</useGlobalPreferredServer>
22
+ </outgoingServer>
23
+ </emailProvider>
24
+ </clientConfig>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <clientConfig>
3
+ <emailProvider id="zpost.plala.or.jp">
4
+ <domain>zpost.plala.or.jp</domain>
5
+ <displayName>ぷらら</displayName>
6
+ <displayShortName>ぷらら</displayShortName>
7
+ <incomingServer type="pop3">
8
+ <hostname>zpost.mail.plala.or.jp</hostname>
9
+ <port>110</port>
10
+ <socketType>plain</socketType>
11
+ <username>%EMAILLOCALPART%</username>
12
+ <authentication>plain</authentication>
13
+ </incomingServer>
14
+ <outgoingServer type="smtp">
15
+ <hostname>zpost.mail.plala.or.jp</hostname>
16
+ <port>587</port>
17
+ <socketType>plain</socketType>
18
+ <username>%EMAILLOCALPART%</username>
19
+ <authentication>plain</authentication>
20
+ <addThisServer>true</addThisServer>
21
+ <useGlobalPreferredServer>false</useGlobalPreferredServer>
22
+ </outgoingServer>
23
+ </emailProvider>
24
+ </clientConfig>
@@ -0,0 +1,118 @@
1
+ module MailAutoconfig
2
+
3
+ # Parse the Autoconfig XML file and create a ruby representation
4
+ class ClientConfig
5
+
6
+ attr_reader :config
7
+ attr_accessor :email_address
8
+
9
+ class << self
10
+ # Build a configuration from the specified path
11
+ # @param path [String] the loction of the client configuartion file
12
+ # @return [ClientConfig] new client configuration
13
+ def from_file(path)
14
+ self.new(File.read(path))
15
+ end
16
+
17
+ # Try to find a configuration for the given domain, locally or remotely
18
+ # @param domain [String] the domain to lookup the configuration for
19
+ # @return [ClientConfig] client configuration for the domain
20
+ def search(domain)
21
+ search_local_files(domain) || search_autoconfig_domain(domain)
22
+ end
23
+
24
+ # Search local ISPDB for configurations matching the domain
25
+ # @param domain [String] the domain to look for
26
+ # @return [ClientConfig] client configuration for the domain
27
+ def search_local_files(domain)
28
+ last_config = false
29
+ match = Dir.glob(File.join(MailAutoconfig.local_ispdb_path, '*')).find do |config_file|
30
+ last_config = self.from_file(config_file)
31
+ last_config.valid_for_domain?(domain)
32
+ end
33
+ match ? last_config : false
34
+ end
35
+
36
+ # Try a remote server for the configuration for the domain.
37
+ # Search `http://autoconfig.#{domain}/mail/config-v1.1.xml` first,
38
+ # followed by `http://#{domain}/.well-known/autoconfig/mail/config-v1.1.xml`
39
+ # @param domain [String] the domain to look for
40
+ # @return [ClientConfig] the client configuration for the domain
41
+ def search_autoconfig_domain(domain)
42
+ last_config = false
43
+ match = ["http://autoconfig.#{domain}/mail/config-v1.1.xml", "http://#{domain}/.well-known/autoconfig/mail/config-v1.1.xml"].find do |url|
44
+ begin
45
+ response = Faraday.get(url)
46
+ if response.status == 200
47
+ last_config = self.new(response.body)
48
+ else
49
+ false
50
+ end
51
+ rescue
52
+ false
53
+ end
54
+ end
55
+ match ? last_config : false
56
+ end
57
+ end
58
+
59
+ # @param client_config_xml [String] the raw XML to build the ClientConfig from.
60
+ def initialize(client_config_xml)
61
+ @config = Nokogiri::XML(client_config_xml)
62
+ end
63
+
64
+ # A list of domain aliases that this configuration applies to
65
+ # @return [Array] list of domains for this configuration
66
+ def domains
67
+ @domains ||= provider.xpath('domain').map {|domain| domain.content }
68
+ end
69
+
70
+ # Does this configuration file apply to the specified domain?
71
+ # @param domain [String] the domain to check
72
+ # @return [Boolean] Does the domain match?
73
+ def valid_for_domain?(domain)
74
+ domains.any? {|d| d == domain}
75
+ end
76
+
77
+ # @return [String] The unique string identifying this service (e.g. googlemail.com)
78
+ def provider_id
79
+ @provider_id ||= provider.attr('id').value
80
+ end
81
+
82
+ # @return [String] the full name of this service (e.g. Google Mail)
83
+ def name
84
+ @name ||= provider.xpath('displayName').first.content
85
+ end
86
+
87
+ # @return [String] the short name of this service (e.g. GMail)
88
+ def short_name
89
+ @short_name ||= provider.xpath('displayShortName').first.content
90
+ end
91
+
92
+ # The incoming servers for this configuration. There can be multiple servers per
93
+ # configuration e.g. for IMAP and POP3, ordered in list of preference.
94
+ # @return [Array] list of incoming servers
95
+ def incoming_servers
96
+ @incoming_servers ||= provider.xpath('incomingServer').map do |incoming|
97
+ MailAutoconfig::IncomingServer.new(incoming, self)
98
+ end
99
+ end
100
+
101
+ # The outgoing servers for this configuration. There can be multiple servers per
102
+ # configuration, ordered in list of preference.
103
+ # @return [Array] list of outgoing servers
104
+ def outgoing_servers
105
+ @outgoing_servers ||= provider.xpath('outgoingServer').map do |outgoing|
106
+ MailAutoconfig::OutgoingServer.new(outgoing, self)
107
+ end
108
+ end
109
+
110
+ private
111
+
112
+ # @return [Nokogiri::XML::Node] the root configuration node
113
+ def provider
114
+ @provider ||= config.xpath('//clientConfig/emailProvider')
115
+ end
116
+
117
+ end
118
+ end