Hi,<br><br>(I&#39;m top posting as the previous posters have set in motion...)<br><br>I came across this old posting on the Cyrus mailing list.  It is very close to what<br>I want to do, simply extracting a list of mailboxes from within Perl.<br>
<br>For some reason our use of IMAP::Admin on Redhat 6 has stopped<br>working for the old script I&#39;ve used before.  Most calls work, but<br>@mailboxlist = $client-&gt;list( &quot;*&quot; )  returns an empty list, and<br>
no errors can be forced to appear.<br><br>So I&#39;m trying out Cyrus::IMAP::Admin, and rewriting the connection stuff.<br><br>In my case I need to specify the authentication info. I found an old web page<br>which said I need to call it like this:<br>
<br>   $client = Cyrus::IMAP::Admin-&gt;new(  &quot;$server&quot; );<br>   $auth = {<br>      -mechanism =&gt; &#39;login&#39;,<br>      -service =&gt; &#39;imap&#39;,<br>      -authz =&gt; $uid,<br>      -user =&gt; $uid,<br>
      -minssf =&gt; 0,<br>      -maxssf =&gt; 10000,<br>      -password =&gt; $pwd,<br>   };<br><br>   $client-&gt;authenticate($auth);<br><br>When I use this, I get an error:<br><br>Error: Please login first<br><br>Finding docs and examples on Cyrus::IMAP::Admin is rather thin <br>
on some details.  Does anyone have a sample script which does<br>authentication/login?<br><br>--Donald<br><br><div class="gmail_quote">On Thu, Mar 26, 2009 at 1:37 PM, Jeff Blaine <span dir="ltr">&lt;<a href="mailto:jblaine@kickflop.net">jblaine@kickflop.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Thanks.  I shortened it to the following.  For those<br>
using this, it needs to run as cyrus (or whatever your<br>
cyrus user is).<br>
<br>
#!/linus/mail/cyrus/bin/perl<br>
<br>
$default_quota = 400000;<br>
<div class="im"><br>
use Cyrus::IMAP::Admin;<br>
use Cyrus::IMAP;<br>
<br>
</div>my $client = Cyrus::IMAP::Admin-&gt;new(&quot;YOUR_SERVER&quot;,143);<br>
<div class="im"><br>
$client-&gt;authenticate;<br>
<br>
@mailboxes = $client-&gt;list(&#39;%&#39;, &#39;user.&#39;);<br>
<br>
foreach $mbx ( @mailboxes ) {<br>
     @m = @$mbx;<br>
<br>
</div><div class="im">     $client-&gt;setquota($m[0],&quot;STORAGE&quot;,$default_quota);<br>
}<br>
<br>
<br>
</div><div><div></div><div class="h5">Paul M Fleming wrote:<br>
&gt; Save you the work -- had to do the same thing myself.<br>
&gt;<br>
&gt; Modify as needed - for example, i use this with Kerberos auth so no<br>
&gt; username / password is used.<br>
&gt;<br>
&gt;<br>
&gt; #!/usr/bin/perl<br>
&gt;<br>
&gt; use Cyrus::IMAP::Admin;<br>
&gt; use Cyrus::IMAP;<br>
&gt; $default_quota = 200000;<br>
&gt;<br>
&gt; my $client = Cyrus::IMAP::Admin-&gt;new(&quot;server&quot;,143);<br>
&gt; $client-&gt;authenticate;<br>
&gt; @mailboxes = $client-&gt;list(&#39;%&#39;, &#39;user.&#39;);<br>
&gt; foreach $mbx ( @mailboxes )<br>
&gt; {<br>
&gt;<br>
&gt;         @m = @$mbx;<br>
&gt;<br>
&gt;         ($root, %quota) = $client-&gt;quotaroot($m[0]);<br>
&gt;<br>
&gt;         $cur_usage = $quota{&quot;STORAGE&quot;}[0];<br>
&gt;         $cur_quota = $quota{&quot;STORAGE&quot;}[1];<br>
&gt;<br>
&gt;         if ( defined $cur_quota )<br>
&gt;         {<br>
&gt;                 # quota defined<br>
&gt;                 if ( $cur_quota &lt; $default_quota )<br>
&gt;                 {<br>
&gt;                         print &quot;$m[0] : below default increasing\n&quot;;<br>
&gt;                         $client-&gt;setquota($m[0],&quot;STORAGE&quot;,$default_quota);<br>
&gt;                 }<br>
&gt;                 if ( $cur_quota &gt; $default_quota )<br>
&gt;                 {<br>
&gt;                         print &quot;$m[0] : over default: $cur_quota<br>
&gt; ($cur_usage / $cur_quota)\n&quot;;<br>
&gt;                 }<br>
&gt;         }<br>
&gt;         else<br>
&gt;         {<br>
&gt;                 print &quot;$m[0] : NO QUOTA $cur_usage\n&quot;;<br>
&gt;         }<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt; On 3/26/2009 11:03 AM, Jeff Blaine wrote:<br>
&gt;&gt; In 2000, I wrote a simple script that was fed to cyradm<br>
&gt;&gt; to set all users quota to some value.<br>
&gt;&gt;<br>
&gt;&gt; It appears today that the only option to do something like<br>
&gt;&gt; this is to learn the Cyrus::* Perl modules.<br>
&gt;&gt;<br>
&gt;&gt; Is that correct?<br>
&gt;&gt; ----<br>
&gt;&gt; Cyrus Home Page: <a href="http://cyrusimap.web.cmu.edu/" target="_blank">http://cyrusimap.web.cmu.edu/</a><br>
&gt;&gt; Cyrus Wiki/FAQ: <a href="http://cyrusimap.web.cmu.edu/twiki" target="_blank">http://cyrusimap.web.cmu.edu/twiki</a><br>
&gt;&gt; List Archives/Info: <a href="http://asg.web.cmu.edu/cyrus/mailing-list.html" target="_blank">http://asg.web.cmu.edu/cyrus/mailing-list.html</a><br>
&gt;<br>
----<br>
Cyrus Home Page: <a href="http://cyrusimap.web.cmu.edu/" target="_blank">http://cyrusimap.web.cmu.edu/</a><br>
Cyrus Wiki/FAQ: <a href="http://cyrusimap.web.cmu.edu/twiki" target="_blank">http://cyrusimap.web.cmu.edu/twiki</a><br>
List Archives/Info: <a href="http://asg.web.cmu.edu/cyrus/mailing-list.html" target="_blank">http://asg.web.cmu.edu/cyrus/mailing-list.html</a><br>
</div></div></blockquote></div><br>