[imp] Email sending & Imp_quota problems

hardik hbpandya at gnvfc.net
Fri Feb 7 16:50:34 PST 2003


Hi everybody,

We have configured Webmail using Horde2.1, IMP3.1 & PHP4.0.6 on our vpopmail+qmail+IMAP installation running on Linux server. 

Presently we r experiencing a problem while sending emails through webmail. After composing the email, clicking on Send button gives "Page can not be displayed" error and loss of composed email. 

Another problem happens when enabling the quota usage from IMAP server using imp_show_quota function. It shows the quota bar but generates quota_warning messages even if user has significant space left in his Mail dir. If we delete the 'maildirsize' file, it solves the purpose temporarily. 

What could be the prob.

regards,

Hardik Pandya
GNFC Ltd
India


Our imp_show_quota function looks like as below:
==============================================
// If this is set to a function name, that function will be used
// to show the user's quota usage on the mailbox page.
// See the 'imp_show_quota' function below for an example.
$conf['hooks']['quota'] = 'imp_show_quota';
//             return preg_replace('|\.|', '_', $imp['user'] . '_' . $vdomain);
//         } elseif ($type == "vdomain") {

// If this is set to a function name, that function will be used
// to show the user's quota usage on the mailbox page.
// See the 'imp_show_quota' function below for an example.
$conf['hooks']['quota'] = 'imp_show_quota';

/* Gets the quota usage from the imap server. $imap_admin &
 * $imap_passwd must be set to fit your own settings. This works
 * with the Cyrus imap server and the Courier imap server > 1.3.12.
 * Note the necessary changes for the Courier server in the comments.
 */
if (!function_exists('imp_show_quota')) {
   function imp_show_quota ($imp) {
         $quota_html = '';
//         $imap_admin = 'admin';
//        $imap_passwd = 'password';
//        // Use the following two lines instead for Courier.
          $imap_admin = $imp['user'];
          $imap_passwd = Secret::read(Secret::getKey('imp'), $imp['pass']);

         $stream = @imap_open(IMP::serverString(), $imap_admin, $imap_passwd, OP
_HALFOPEN);
//         $quota = @imap_get_quota($stream, 'user.' . $imp['user']);
//         // Use the following line instead for Courier.
          $quota = @imap_get_quota($stream, 'ROOT');
         imap_close($stream);

         if (is_array($quota) && $quota['limit'] != 0) {
             $taken   = $quota['usage'] / 1024.0;
             $total   = $quota['limit'] / 1024.0;
             $percent = $taken * 100 / $total;
             if ($percent >= 90) {
                 $class = 'quotaalert';
             } elseif ($percent >= 75) {
                 $class = 'quotawarn';
             } else {
                 $class = 'control';
             }

             $quota_html = '<table width="100%" border="0" cellpadding="0" cells
pacing="0"><tr><td class="item">'
                           . '<table border="0" cellspacing="2" cellpadding="2"
width="100%"><tr><td align="center" class="' . $class . '">'
                           . sprintf("%.2fMB / %.2fMB  (%.2f%%)", $taken, $total
, $percent)
                           . '</td></tr></table></td></tr></table>';
         }
         return $quota_html;
     }
}
=================================================================


More information about the imp mailing list