app_mailpile.html 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  5. <head>
  6. <title></title>
  7. <!-- 2018-06-16 Sat 21:51 -->
  8. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  9. <meta name="generator" content="Org-mode" />
  10. <meta name="author" content="Bob Mottram" />
  11. <meta name="description" content="How to use Mailpile"
  12. />
  13. <meta name="keywords" content="freedombone, mailpile" />
  14. <style type="text/css">
  15. <!--/*--><![CDATA[/*><!--*/
  16. .title { text-align: center; }
  17. .todo { font-family: monospace; color: red; }
  18. .done { color: green; }
  19. .tag { background-color: #eee; font-family: monospace;
  20. padding: 2px; font-size: 80%; font-weight: normal; }
  21. .timestamp { color: #bebebe; }
  22. .timestamp-kwd { color: #5f9ea0; }
  23. .right { margin-left: auto; margin-right: 0px; text-align: right; }
  24. .left { margin-left: 0px; margin-right: auto; text-align: left; }
  25. .center { margin-left: auto; margin-right: auto; text-align: center; }
  26. .underline { text-decoration: underline; }
  27. #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  28. p.verse { margin-left: 3%; }
  29. pre {
  30. border: 1px solid #ccc;
  31. box-shadow: 3px 3px 3px #eee;
  32. padding: 8pt;
  33. font-family: monospace;
  34. overflow: auto;
  35. margin: 1.2em;
  36. }
  37. pre.src {
  38. position: relative;
  39. overflow: visible;
  40. padding-top: 1.2em;
  41. }
  42. pre.src:before {
  43. display: none;
  44. position: absolute;
  45. background-color: white;
  46. top: -10px;
  47. right: 10px;
  48. padding: 3px;
  49. border: 1px solid black;
  50. }
  51. pre.src:hover:before { display: inline;}
  52. pre.src-sh:before { content: 'sh'; }
  53. pre.src-bash:before { content: 'sh'; }
  54. pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  55. pre.src-R:before { content: 'R'; }
  56. pre.src-perl:before { content: 'Perl'; }
  57. pre.src-java:before { content: 'Java'; }
  58. pre.src-sql:before { content: 'SQL'; }
  59. table { border-collapse:collapse; }
  60. caption.t-above { caption-side: top; }
  61. caption.t-bottom { caption-side: bottom; }
  62. td, th { vertical-align:top; }
  63. th.right { text-align: center; }
  64. th.left { text-align: center; }
  65. th.center { text-align: center; }
  66. td.right { text-align: right; }
  67. td.left { text-align: left; }
  68. td.center { text-align: center; }
  69. dt { font-weight: bold; }
  70. .footpara:nth-child(2) { display: inline; }
  71. .footpara { display: block; }
  72. .footdef { margin-bottom: 1em; }
  73. .figure { padding: 1em; }
  74. .figure p { text-align: center; }
  75. .inlinetask {
  76. padding: 10px;
  77. border: 2px solid gray;
  78. margin: 10px;
  79. background: #ffffcc;
  80. }
  81. #org-div-home-and-up
  82. { text-align: right; font-size: 70%; white-space: nowrap; }
  83. textarea { overflow-x: auto; }
  84. .linenr { font-size: smaller }
  85. .code-highlighted { background-color: #ffff00; }
  86. .org-info-js_info-navigation { border-style: none; }
  87. #org-info-js_console-label
  88. { font-size: 10px; font-weight: bold; white-space: nowrap; }
  89. .org-info-js_search-highlight
  90. { background-color: #ffff00; color: #000000; font-weight: bold; }
  91. /*]]>*/-->
  92. </style>
  93. <link rel="stylesheet" type="text/css" href="freedombone.css" />
  94. <script type="text/javascript">
  95. /*
  96. @licstart The following is the entire license notice for the
  97. JavaScript code in this tag.
  98. Copyright (C) 2012-2013 Free Software Foundation, Inc.
  99. The JavaScript code in this tag is free software: you can
  100. redistribute it and/or modify it under the terms of the GNU
  101. General Public License (GNU GPL) as published by the Free Software
  102. Foundation, either version 3 of the License, or (at your option)
  103. any later version. The code is distributed WITHOUT ANY WARRANTY;
  104. without even the implied warranty of MERCHANTABILITY or FITNESS
  105. FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
  106. As additional permission under GNU GPL version 3 section 7, you
  107. may distribute non-source (e.g., minimized or compacted) forms of
  108. that code without the copy of the GNU GPL normally required by
  109. section 4, provided you include this license notice and a URL
  110. through which recipients can access the Corresponding Source.
  111. @licend The above is the entire license notice
  112. for the JavaScript code in this tag.
  113. */
  114. <!--/*--><![CDATA[/*><!--*/
  115. function CodeHighlightOn(elem, id)
  116. {
  117. var target = document.getElementById(id);
  118. if(null != target) {
  119. elem.cacheClassElem = elem.className;
  120. elem.cacheClassTarget = target.className;
  121. target.className = "code-highlighted";
  122. elem.className = "code-highlighted";
  123. }
  124. }
  125. function CodeHighlightOff(elem, id)
  126. {
  127. var target = document.getElementById(id);
  128. if(elem.cacheClassElem)
  129. elem.className = elem.cacheClassElem;
  130. if(elem.cacheClassTarget)
  131. target.className = elem.cacheClassTarget;
  132. }
  133. /*]]>*///-->
  134. </script>
  135. </head>
  136. <body>
  137. <div id="preamble" class="status">
  138. <a name="top" id="top"></a>
  139. </div>
  140. <div id="content">
  141. <h1 class="title"></h1>
  142. <div class="figure">
  143. <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
  144. </p>
  145. </div>
  146. <div id="outline-container-sec-1" class="outline-2">
  147. <h2 id="sec-1">Mailpile</h2>
  148. <div class="outline-text-2" id="text-1">
  149. <p>
  150. Mailpile provides a nice looking webmail interface suitable for use on desktop or mobile clients. It has good support for email encryption and makes that quite an simple process. At present it's usable but still has a few bugs and limitations. If you need a fully functional email client with comprehensive encryption support then either use Mutt or Thunderbird/Icedove.
  151. </p>
  152. <p>
  153. An advantage of this type of webmail is that <i>it keeps your GPG keys off of any mobile devices</i> so that if you lose your phone, or it gets stolen, then your email might still not be compromised.
  154. </p>
  155. <p>
  156. One down side is that this appears to be a single user system, so if you have multiple users on your Freedombone server only the administrator will actually be able to use mailpile.
  157. </p>
  158. </div>
  159. </div>
  160. <div id="outline-container-sec-2" class="outline-2">
  161. <h2 id="sec-2">Installation</h2>
  162. <div class="outline-text-2" id="text-2">
  163. <p>
  164. Log into your system with:
  165. </p>
  166. <div class="org-src-container">
  167. <pre class="src src-bash">ssh myusername@mydomain -p 2222
  168. </pre>
  169. </div>
  170. <p>
  171. Using cursor keys and Enter key select <b>Administrator controls</b> and type in your password.
  172. </p>
  173. <p>
  174. Select <b>Add/Remove Apps</b> then <b>mailpile</b>. You will then be asked for a domain name and if you are using FreeDNS also the code for the domain which can be found under <b>Dynamic DNS</b> on the FreeDNS site (the random string from "<i>quick cron example</i>" which appears after <i>update.php?</i> and before <i>&gt;&gt;</i>). For more details on obtaining a domain and making it accessible via dynamic DNS see the <a href="./faq.html">FAQ</a>. Typically the domain name you use will be a subdomain, such as <i>mail.mydomainname.net</i>. It will need to be a domain which you have bought somewhere and own and not one of the FreeDNS subdomains, otherwise you won't be able to get a SSL/TLS certificate for it.
  175. </p>
  176. <p>
  177. After the install has completed go to <b>Security settings</b> and select <b>Create a new Let's Encrypt certificate</b> and enter the domain name that you are using for Mailpile. If you're using the "onion only" version of the system then you don't need to do this. If the certificate is obtained successfully then you will see a congratulations message.
  178. </p>
  179. </div>
  180. </div>
  181. <div id="outline-container-sec-3" class="outline-2">
  182. <h2 id="sec-3">Initial setup</h2>
  183. <div class="outline-text-2" id="text-3">
  184. <p>
  185. If you have just obtained a Lets Encrypt certificate as above then go to <b>About</b> on the administrator control panel and you should see your Mailpile domain listed there along with an onion address. You can then navigate to your site in a browser.
  186. </p>
  187. <p>
  188. To see the login password for your site go to <b>Passwords</b> on the <b>Administrator control panel</b> and select the appropriate username and app. The passwords will be different for each user and may not be the same as the password which you used to originally ssh into the system.
  189. </p>
  190. <p>
  191. If you're viewing your mail domain site on a mobile device via OrFox then make sure you allow the domain in the NoScript settings.
  192. </p>
  193. <p>
  194. Enter a password and store it within a password manager.
  195. </p>
  196. <p>
  197. Click on the <b>Privacy and Security</b> button.
  198. </p>
  199. <p>
  200. Scroll down and select <b>Save Settings</b>. Don't click on the Tor button.
  201. </p>
  202. <p>
  203. Click <b>Add account</b>.
  204. </p>
  205. <p>
  206. Enter your name, email address and password.
  207. </p>
  208. <p>
  209. Uncheck <b>Detect Settings</b> and click <b>Next</b>.
  210. </p>
  211. <p>
  212. Under <b>Sending Mail</b> select <b>local</b> or if you need to proxy outgoing email through your ISP's server select <b>SMTP/TLS</b> and enter the details, then click <b>Next</b>.
  213. </p>
  214. <div class="figure">
  215. <p><img src="images/mailpile_setup.jpg" alt="mailpile_setup.jpg" width="80%" align="center" />
  216. </p>
  217. </div>
  218. <p>
  219. Under <b>Receiving files</b> select <b>IMAP</b>, the domain as <b>localhost</b>, port <b>143</b> and your username, then click <b>Next</b>. Astute readers may well be concerned that IMAP over port 143 is not encrypted, but since this is only via localhost communication between the Mail Transport Agent and Mailpile doesn't travel over the internet and port 143 is not opened on the firewall so it's not possible to accidentally connect an external mail client insecurely.
  220. </p>
  221. <div class="figure">
  222. <p><img src="images/mailpile_setup_keys.jpg" alt="mailpile_setup_keys.jpg" width="80%" align="center" />
  223. </p>
  224. </div>
  225. <p>
  226. Under <b>Security and Privacy</b> either select your existing encryption key or if you only get the option to create a new one then do so, then click <b>Add</b> or <b>Save</b>.
  227. </p>
  228. <p>
  229. You will then be asked for a password. Confusingly, this won't be the password you gave initially when setting up Mailpile. It's the original <b>ssh password</b> which you used to set up the Freedombone system.
  230. </p>
  231. <p>
  232. The process of importing your email should then occur, and can take some time.
  233. </p>
  234. </div>
  235. </div>
  236. </div>
  237. <div id="postamble" class="status">
  238. <style type="text/css">
  239. .back-to-top {
  240. position: fixed;
  241. bottom: 2em;
  242. right: 0px;
  243. text-decoration: none;
  244. color: #000000;
  245. background-color: rgba(235, 235, 235, 0.80);
  246. font-size: 12px;
  247. padding: 1em;
  248. display: none;
  249. }
  250. .back-to-top:hover {
  251. background-color: rgba(135, 135, 135, 0.50);
  252. }
  253. </style>
  254. <div class="back-to-top">
  255. <a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
  256. </div>
  257. </div>
  258. </body>
  259. </html>