1IMAP::Shell(3) User Contributed Perl Documentation IMAP::Shell(3)
2
3
4
6 Cyrus::IMAP::Shell - Perl version of cyradm
7
9 $ cyradm [--user authid] [--authz authzid] [--[no]rc] [--systemrc file] [--userrc file] \
10 > [--port n] [--auth mechanism] [--server] server
11
12 but possibly
13
14 $ perl -MCyrus::IMAP::Shell -e 'run("myscript")'
15
16 or even (not recommended)
17
18 use Cyrus::IMAP::Admin::Shell;
19
20 run('myscriptname');
21
23 This module implements cyradm in Perl. It is a shell around
24 Cyrus::IMAP::Admin. Commands are provided in both Tcl-compatible forms
25 and GNU-style long option forms.
26
27 The ``cyradm`` utility is a simple command line for performing common
28 administrative tasks on a Cyrus IMAP server, written in Perl.
29
30 The cyradm utility can either be executed from a client where it has
31 been installed and connect to the server via IMAP or it can be executed
32 locally via a shell on the server.
33
34 cyradm understands /bin/sh-style redirection: any command can have its
35 standard or error output redirected, with all sh-style redirections
36 (except \<\>) supported. It does not currently understand pipes or
37 backgrounding.
38
39 If the Term::Readline::Perl or Term::Readline::GNU modules are
40 available, cyradm will use it.
41
43 "--u", "--user" user
44 Authenticate with the specified username.
45
46 "--authz" user
47 Authorize the connection as being the specified username.
48
49 "--norc", "--rc"
50 (Do not) load the configuration files.
51
52 "--systemrc" file
53 Use the system configuration file specified.
54
55 "--userrc" file
56 Use the user configuration file specified.
57
58 "--port" port
59 Connect to the *server* specified on the port specified.
60
61 "--auth" mechanism
62 Use the mechanism specified to authenticate. One of PLAIN, LOGIN,
63 DIGEST-MD5, etc.
64
65 "--help"
66 Show a help message about these command-line options.
67
68 "--version"
69 Display the version of Cyrus IMAP the current ``cyradm`` command is
70 a part of.
71
72 "--server" server
73 The server address to connect to.
74
76 authenticate
77 authenticate ["--minssf" N] ["--maxssf" N] ["--mechanisms" list]
78 ["--service" name] ["--tlskey" keyfile] ["--notls"] ["--cafile"
79 cacertfile] ["--capath" cacertdir] user
80
81 Authenticate to server. You must already be connected to a server and
82 Cyrus imapd will refuse to allow you to re-authenticate once you have
83 authenticated once.
84
85 aliases: "auth", "login"
86
87 chdir
88 chdir directory
89
90 Change directory. A "pwd" builtin is not provided, but the default
91 command action will run "pwd" from a shell if invoked.
92
93 aliases: "cd"
94
95 createmailbox
96 createmailbox ["--partition" partition] ["--specialuse" specialuse]
97 mailbox
98
99 createmailbox ["--specialuse" specialuse] mailbox partition
100
101 Create a mailbox on the default or a specified partition. Both old-
102 style and getopt-style usages are accepted (combining them will produce
103 an error). Optionally assign a special use to the mailbox.
104
105 New mailboxes inherit the ACL permissions of their parent mailbox,
106 except for top-level mailboxes such as the user's INBOX. Mailboxes that
107 are the user's INBOX are assigned all to the corresponding user.
108
109 Example Usage
110 localhost> :command:`cm user.john`
111 localhost> :command:`lm`
112 user.john (\HasNoChildren)
113 localhost> :command:`lam user.john`
114 john lrswipkxtecda
115
116 Note that in the above example, the "unixhierarchysep" setting in
117 imapd.conf is set to 0. When using the UNIX hierarchy seperator,
118 the "/" (forward slash) character would be used as the hierarchy
119 seperator, and the example would look as follows:
120
121 Example Usage with "unixhierarchysep: 1"
122 localhost> :command:`cm user/john`
123 localhost> :command:`lm`
124 user/john (\HasNoChildren)
125 localhost> :command:`lam user/john`
126 john lrswipkxtecda
127
128 Note
129 The above examples use the unqualified, shorthand user identifier
130 john as the mailbox name.
131
132 With the use of virtual domains, controlled through the
133 "virtdomains" setting in imapd.conf(5).
134
135 aliases: "cm", "create"
136
137 deleteaclmailbox
138 deleteaclmailbox mailbox id [...]
139
140 Remove ACLs from the specified mailbox.
141
142 aliases: "delteacl", "dam"
143
144 deletemailbox
145 deletemailbox mailbox
146
147 Delete the specified mailbox.
148
149 Administrators do not have implicit delete rights on mailboxes. Use
150 the "setaclmailbox" command to grant the "x" permission to your
151 principal if you need to delete a mailbox you do not own.
152
153 Note that the online help admits to an optional host argument. This
154 argument is not currently used, and will be rejected with an error if
155 specified; it is reserved for IMSP.
156
157 aliases: "delete", "dm"
158
159 disconnect
160 disconnect
161
162 Disconnect from the current server. The prompt will revert to
163 "cyradm>". This does not quit cyradm.
164
165 aliases: "disc"
166
167 exit
168 exit [number]
169
170 Exit "cyradm", optionally with a specific exit status; the exit status
171 of the last command will be used if one is not specified.
172
173 aliases: "quit"
174
175 help
176 help [command]
177
178 Show help for "command" or all commands.
179
180 aliases: "?"
181
182 info
183 info [mailbox]
184
185 Display the mailbox/server metadata.
186
187 listaclmailbox
188 listaclmailbox mailbox
189
190 List ACLs on the specified mailbox.
191
192 aliases: "lam", "listacl"
193
194 listmailbox
195 listmailbox ["--subscribed"] ["--specialuse"] [pattern [reference]]
196
197 List all, or all subscribed or special-use, mailboxes matching the
198 specified pattern. The pattern may have embedded wildcards '*' or '%',
199 which match anything or anything except the separator character,
200 respectively.
201
202 Mailboxes returned will be relative to the specified reference if one
203 is specified. This allows a mailbox list to be limited to a particular
204 hierarchy.
205
206 In some cases when the '%' wildcard is used to end a pattern, it may
207 match an entry which is not a mailbox but which contains other
208 mailboxes. In this case, the entry will be parenthesized to indicate
209 that it is a root for other mailboxes, as opposed to a mailbox itself.
210
211 aliases: "list", "lm"
212
213 listquota
214 listquota root
215
216 List quotas on specified root. If the specified mailbox path does not
217 have a quota assigned, an error will be raised; see "listquotaroot" for
218 a way to find the quota root for a mailbox.
219
220 aliases: "lq"
221
222 listquotaroot
223 listquotaroot mailbox
224
225 Show quota roots and quotas for mailbox
226
227 aliases: "lqm", "lqr"
228
229 mboxconfig
230 mboxconfig ["--private"] mailbox attribute value
231
232 Set mailbox metadata, optionally set the private instead of the shared
233 version of the metadata. A value of "none" will remove the attribute.
234
235 The currently supported attributes are:
236
237 "comment" description
238 Sets a comment or description associated with the mailbox.
239
240 "expire" days
241 Sets the number of days after which messages will be expired from
242 the mailbox.
243
244 "news2mail" address
245 Sets an email address to which messages injected into the server
246 via NNTP will be sent.
247
248 "pop3showafter" time
249 Sets a time (in RFC3501 format, for example "6-Jan-2011 11:45:32
250 +1100") which specifies a cutoff date such that POP3 fetching of
251 the folder does not see messages whose internaldate is before or
252 equal to the date.
253
254 "sharedseen" true|false
255 Enables the use of a shared \Seen flag on messages rather than a
256 per-user \Seen flag. The 's' right in the mailbox ACL still
257 controls whether a user can set the shared \Seen flag.
258
259 "sieve" scriptname
260 Indicates the name of the global sieve script that should be run
261 when a message is delivered to the shared mailbox (not used for
262 personal mailboxes).
263
264 "squat" true|false
265 Indicates that the mailbox should have a squat index created for
266 it.
267
268 aliases: "mboxcfg"
269
270 reconstruct
271 reconstruct ["-r"] mailbox
272
273 Reconstruct the specified mailbox, optionally recursing and
274 reconstructing child mailboxes if the "-r" flag is given.
275
276 For more information see reconstruct(8).
277
278 renamemailbox
279 renamemailbox ["--partition" partition] oldname newname
280
281 renamemailbox oldname newname [partition]
282
283 Rename the specified mailbox, optionally moving it to a different
284 partition. Both old-style and getopt-style usages are accepted;
285 combining them will produce an error.
286
287 aliases: "rename", "renm"
288
289 server
290 server
291
292 server [--noauthenticate] [server]
293
294 With no arguments, show the current server. With an argument, connect
295 to that server. It will prompt for automatic login unless the
296 "--noauthenticate" option is specified. (This may change; in
297 particular, either automatic authentication will be removed or all
298 "authenticate" options will be added.)
299
300 When connected to a server, cyradm's prompt changes from "cyradm>" to
301 "servername>", where servername is the fully qualified domain name of
302 the connected server.
303
304 aliases: "connect", "servername"
305
306 setaclmailbox
307 setaclmailbox mailbox id rights [id rights ...]
308
309 Set ACLs on a mailbox. The ACL may be one of the special strings
310 "none", "read" ("lrs"), "post" ("lrsp"), "append" ("lrsip"), "write"
311 ("lrswipkxte"), "delete" ("lrxte"), or "all" ("lrswipkxte"), or any
312 combinations of the ACL codes:
313
314 l Lookup (mailbox is visible to LIST/LSUB, SUBSCRIBE mailbox)
315
316 r Read (SELECT/EXAMINE the mailbox, perform STATUS)
317
318 s Seen (set/clear \SEEN flag via STORE, also set \SEEN flag during
319 APPEND/COPY/FETCH BODY[...])
320
321 w Write flags other than \SEEN and \DELETED
322
323 i Insert (APPEND, COPY destination)
324
325 p Post (send mail to mailbox)
326
327 k Create mailbox (CREATE new sub-mailboxes, parent for new mailbox in
328 RENAME)
329
330 x Delete mailbox (DELETE mailbox, old mailbox name in RENAME)
331
332 t Delete messages (set/clear \DELETED flag via STORE, also set
333 \DELETED flag during APPEND/COPY)
334
335 e Perform EXPUNGE and expunge as part of CLOSE
336
337 a Administer (SETACL/DELETEACL/GETACL/LISTRIGHTS)
338
339 aliases: "setacl", "sam"
340
341 setinfo
342 setinfo attribute value
343
344 Set server metadata. A value of "none" will remove the attribute. The
345 currently supported attributes are:
346
347 "motd" message
348 Sets a "message of the day". The message gets displayed as an
349 ALERT upon connection.
350
351 "comment" note
352 Sets a comment or description associated with the server.
353
354 "admin" address
355 Sets the administrator email address for the server.
356
357 "shutdown" message
358 Sets a shutdown message. The message gets displayed as an ALERT
359 and all users are disconnected from the server (subsequent logins
360 are disallowed).
361
362 "expire" days
363 Sets the number of days after which messages will be expired from
364 the server (unless overridden by a mailbox annotation).
365
366 "squat" true|false
367 Indicates that all mailboxes should have a squat indexes created
368 for them (unless overridden by a mailbox annotation).
369
370 setquota
371 setquota root resource value [resource value ...]
372
373 Set a quota on the specified root, which may or may not be an actual
374 mailbox. The resources understood by Cyrus are "STORAGE", "MESSAGE",
375 "X-NUM-FOLDERS" and "X-ANNOTATION-STORAGE". The storage units are, as
376 defined in RFC 2087, groups of 1024 octets (i.e. Kilobytes). The value
377 may be the special string "none" which will remove the quota.
378
379 aliases: "sq"
380
381 subscribe
382 subscribe mailbox
383
384 Subscribe to the given mailbox.
385
386 unsubscribe
387 unsubscribe mailbox
388
389 Unsubscribe to the given mailbox.
390
391 version
392 version
393
394 Display the version info of the current server.
395
396 aliases: "ver"
397
398 xfermailbox
399 xfermailbox ["--partition" partition] mailbox server
400
401 xfermailbox mailbox server [partition]
402
403 Transfer (relocate) the specified mailbox to a different server. Both
404 old-style and getopt-style usages are accepted; combining them will
405 produce an error.
406
407 aliases: "xfer"
408
410 GNU-style long options must be given in their entirety; Tcl-style
411 options may be abbreviated.
412
413 Tcl-style options are provided as a compatibility feature. They will
414 probably go away in the future.
415
416 Multiple commands can be given on a line, separated by ';' characters.
417
418 All commands set an exit status, which at present is not useful.
419
420 Unknown commands are passed to a subshell for execution.
421
422 The Tcl version of cyradm is used for scripting as well as
423 interactively. While this is possible to a limited extent by use of
424 the "run" method, scripting would normally be done with
425 "Cyrus::IMAP::Admin", which is far more flexible than either
426 interactive "cyradm" or the Tcl scripting mechanism for Cyrus.
427
428 cyradm understands /bin/sh-style redirection: any command can have its
429 standard or error output redirected, with all sh-style redirections
430 (except "<>") supported. It does not currently understand pipes or
431 backgrounding.
432
433 If the "Term::Readline::Perl" or "Term::Readline::GNU" modules are
434 available, cyradm will use it.
435
436 An alias facility is implemented internally, but no access is currently
437 provided to it. This will change, if only to allow some of the
438 predefined aliases to be removed if they conflict with useful shell
439 commands.
440
442 Brandon S. Allbery, allbery@ece.cmu.edu
443
445 Cyrus::IMAP::Admin, Term::ReadLine, sh(1), perl(1), imapd(8),
446 imapd.conf(5), reconstruct(8)
447
448
449
450perl v5.32.0 2020-08-27 IMAP::Shell(3)