summaryrefslogtreecommitdiffstats
path: root/doc/wiki/TestInstallation.txt
blob: 71416dccacc61042bd3a3d658f46d7037792d6ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
Contents


 1. Check that it's running

 2. Check that it's listening

 3. Check that it's allowing logins

 4. Check that it's allowing remote logins

 5. Check that it finds INBOX

 6. Check that it finds other mailboxes

 7. Check out some other IMAP commands

 8. Check that real mail clients work

 9. Make a graceful exit

For testing POP3 installation, see <TestPop3Installation.txt>.

Check that it's running
-----------------------

First check with 'ps' that 'dovecot' process is actually running. If it's not,
you had an error in 'dovecot.conf' and the error message was written to log. Go
back to <RunningDovecot.txt> and <Logging.txt> if you can't find it.

Check that it's listening
-------------------------

Next check that Dovecot is listening for connections:

---%<-------------------------------------------------------------------------
# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS
AUTH=PLAIN] Dovecot ready.
---%<-------------------------------------------------------------------------

If you got "connection refused", make sure that Dovecot is configured to serve
the imap protocol and listening on the expected interfaces/addresses.The
simplest way to do that would be using <doveconf(1)> [Tools.Doveconf.txt]:

---%<-------------------------------------------------------------------------
# doveconf protocols listen
protocols = imap pop3 lmtp sieve
listen = *, ::
---%<-------------------------------------------------------------------------

If the protocols setting don't contain 'imap' then add it. Also make sure, that
relevant '!include' or '!include_try' configuration lines are not commented.

If the telnet fails and dovecot emits a log "/auth: Fatal: Support not compiled
in for passdb driver 'pam'/", then rebuild dovecot with package libpam0g-dev
installed. In that case you have to re-run the configure script, possibly
including option *--with-pam* to the configure command line.

Next check that it also works from remote host:

---%<-------------------------------------------------------------------------
# telnet imap.example.com 143
Trying 1.2.3.4...
Connected to imap.example.com.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS
AUTH=PLAIN] Dovecot ready.
---%<-------------------------------------------------------------------------

If that didn't work, check all possible firewalls in between, and check that
'listen' setting is '*' in 'dovecot.conf'.

If you have only imaps enabled, see "remote login" section below for how to
test using openssl s_client.

Check that it's allowing logins
-------------------------------

---%<-------------------------------------------------------------------------
# telnet localhost 143
a login "username" "password"
---%<-------------------------------------------------------------------------

Replace the username and password with the ones you added to 'passwd.dovecot'
in <BasicConfiguration.txt>. Note that all IMAP commands begin with a tag,
which is basically any string you want, but it must be there. So don't leave
out the "a" in the above example. If the password contains '"' character,
escape it with '\' (e.g.'"foo\"bar"').

You should get an "a OK Logged in." reply. If you get "Authentication failed"
error, set 'auth_verbose = yes' and 'auth_debug = yes' in 'dovecot.conf',
restart Dovecot and try again. The log file should now show enough information
to help you fix the problem.

Check that it's allowing remote logins
--------------------------------------

You'll need to try this from another computer, since all local IPs are treated
as secure:

---%<-------------------------------------------------------------------------
# telnet imap.example.com 143
a login "username" "password"
---%<-------------------------------------------------------------------------

If the connection is hanging instead of giving '* Dovecot ready', you have a
firewall that's preventing the connections.

Otherwise, the only difference here compared to step above is that you might
get:

---%<-------------------------------------------------------------------------
* BAD [ALERT] Plaintext authentication is disabled, but your client sent
password in plaintext anyway. If anyone was listening, the password was
exposed.
a NO Plaintext authentication disabled.
---%<-------------------------------------------------------------------------

If this is the case, you didn't set 'disable_plaintext_auth = no'. You could
alternatively use OpenSSL to test that the server works with SSL:

 * Test using imaps port (assuming you haven't disabled imaps port):
   ---%<----------------------------------------------------------------------
   # openssl s_client -connect imap.example.com:993
   * OK Dovecot ready.
   ---%<----------------------------------------------------------------------

 * Test using imap port and STARTTLS command (works also with imap port):
   ---%<----------------------------------------------------------------------
   # openssl s_client -connect imap.example.com:143 -starttls imap
   * OK Dovecot ready.
   ---%<----------------------------------------------------------------------

Check that it finds INBOX
-------------------------

After logging in, check that the INBOX is found:

---%<-------------------------------------------------------------------------
b select inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags
permitted.
* 1 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1106186941] UIDs valid
* OK [UIDNEXT 2] Predicted next UID
b OK [READ-WRITE] Select completed.
---%<-------------------------------------------------------------------------

It should contain the mail that you sent to yourself in <FindMailLocation.txt>
step.

If anything goes wrong, set 'mail_debug = yes' and try again. The log file
should now contain debugging information of where Dovecot is trying to find the
mails. Fix 'mail_location' setting and try again.

Check that it finds other mailboxes
-----------------------------------

If you already have other mailboxes created, you can check that Dovecot finds
them:

---%<-------------------------------------------------------------------------
c list "" *
* LIST (\NoInferiors) "/" "test"
* LIST (\NoInferiors) "/" "INBOX"
c OK List completed.
---%<-------------------------------------------------------------------------

If they weren't found, set 'mail_debug = yes' and look at the debugging
information. Fix 'mail_location' setting and try again.

Check out some other IMAP commands
----------------------------------

If you already have some emails, you can try reading them:

---%<-------------------------------------------------------------------------
1 SELECT INBOX
2 FETCH 1:* (FLAGS INTERNALDATE BODY.PEEK[HEADER.FIELDS (SUBJECT)])
3 FETCH 1 BODY[TEXT]
---%<-------------------------------------------------------------------------

'1:*' means all messages

You can also try moving a mail to Trash:

---%<-------------------------------------------------------------------------
4 CREATE Trash
5 COPY 1 Trash
6 STORE 1 +FLAGS \Deleted
7 EXPUNGE
---%<-------------------------------------------------------------------------

Check that real mail clients work
---------------------------------

Since mail clients can be configured in various ways, please check first if the
problem is with Dovecot configuration or with the client's configuration. You
can rule out it being Dovecot's problem with the "telnet" methods described
above.

If you can't log in,

 * Make sure SSL/TLS settings are correct.
 * Make sure the client uses plaintext authentication method, unless you've
   specifically configured Dovecot to accept others.

If you can see only INBOX,

 * Clear out any "IMAP namespace prefix" or similar settings from clients.
 * Check if client is configured to show only "subscribed mailboxes". If so,
   you'll have to subscribe to the mailboxes you wish to see. You can see a
   list of subscribed mailboxes with:
   ---%<----------------------------------------------------------------------
   d lsub "" *
   * LSUB () "/" "INBOX"
   d OK Lsub completed.
   ---%<----------------------------------------------------------------------

Most IMAP clients have been tested with Dovecot and they work.

Make a graceful exit
--------------------

To close the connection to Dovecot issue a logout:

---%<-------------------------------------------------------------------------
e logout
* BYE Logging out
e OK Logout completed.
---%<-------------------------------------------------------------------------

(This file was created from the wiki on 2019-06-19 12:42)