Summary | Shared folders dont show with courier-imap |
Queue | IMP |
Queue Version | HEAD |
Type | Bug |
State | Duplicate |
Priority | 1. Low |
Owners | |
Requester | rsalmon (at) mbpgroup (dot) com |
Created | 12/27/2007 (6404 days ago) |
Due | |
Updated | 12/27/2007 (6404 days ago) |
Assigned | |
Resolved | 12/27/2007 (6404 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
State ⇒ Duplicate
ticket #5988.State ⇒ Unconfirmed
Priority ⇒ 1. Low
Type ⇒ Bug
Summary ⇒ Shared folders dont show with courier-imap
Queue ⇒ IMP
I login as 'ronan'. The share is made by 'rsalmon' and is
#shared.rsalmon.test. I was able to create the share from IMP.
I changed the function _getList($path) in imp/lib/IMAP/Tree.php to see
what's going on :
function _getList($path)
{
$unique = array();
if (!$this->_showunsub) {
$this->_initSubscribed();
}
echo "***begins*** _getList\n";
$imp_imap = &IMP_IMAP::singleton();
$newboxes = @imap_getmailboxes($imp_imap->stream(),
$this->_server, $path);
if (is_array($newboxes)) {
foreach ($newboxes as $box) {
if ($this->_showunsub ||
!isset($this->_subscribed[$box->name])) {
/* Strip off server string. */
$box = $this->_removeServerString($box);
if ($box->name && !isset($unique[$box->name])) {
$unique[$box->name] = $box;
}
}
}
}
print_r($unique);
echo "***end*** _getList\n";
return $unique;
}
I couldn't see my shares so I change the namespace search in function init() :
foreach ($this->_namespaces as $key => $val) {
/* We only need to provide the list of folders in the base
* personal namespace. Else, just use the base namespace
entry. */
if (($val['type'] == 'personal') || empty($val['name'])) {
$query = $val['name'] . '%';
} else {
$query = (empty($val['delimiter'])) ? $val['name'] :
rtrim($val['name'], $val['delimiter']);
$query .= '.%';
Now when I login, I get :
***begins*** _getList
Array
(
[INBOX.Brouillon] => stdClass Object
(
[name] => INBOX.Brouillon
[attributes] => 64
[delimiter] => .
[fullServerPath] => {127.0.0.1:143/imap/notls}INBOX.Brouillon
)
[INBOX.Trash] => stdClass Object
(
[name] => INBOX.Trash
[attributes] => 64
[delimiter] => .
[fullServerPath] => {127.0.0.1:143/imap/notls}INBOX.Trash
)
[INBOX.Spam] => stdClass Object
(
[name] => INBOX.Spam
[attributes] => 64
[delimiter] => .
[fullServerPath] => {127.0.0.1:143/imap/notls}INBOX.Spam
)
[INBOX.Sent] => stdClass Object
(
[name] => INBOX.Sent
[attributes] => 64
[delimiter] => .
[fullServerPath] => {127.0.0.1:143/imap/notls}INBOX.Sent
)
)
***end*** _getList
***begins*** _getList
Array
(
[#shared.rsalmon] => stdClass Object
(
[name] => #shared.rsalmon
[attributes] => 34
[delimiter] => .
[fullServerPath] => {127.0.0.1:143/imap/notls}#shared.rsalmon
)
)
***end*** _getList
***begins*** _getList
Array
(
)
***end*** _getList
***begins*** _getList
Array
(
[INBOX] => stdClass Object
(
[name] => INBOX
[attributes] => 40
[delimiter] => .
[fullServerPath] => {127.0.0.1:143/imap/notls}INBOX
)
)
***end*** _getList
***begins*** _getList
Array
(
[#shared.rsalmon.test] => stdClass Object
(
[name] => #shared.rsalmon.test
[attributes] => 64
[delimiter] => .
[fullServerPath] => {127.0.0.1:143/imap/notls}#shared.rsalmon.test
)
)
***end*** _getList
***begins*** _getList
Array
(
)
***end*** _getList
<!--a75c305b1c0a6022--><script type="text/javascript"
src="/horde/imp/js/popup.js"></script>
<!--a75c305b1c0a6022--><script type="text/javascript"
src="/horde/js/prototype.js"></script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
...
I still can't see shared folders within IMP, but from the debug
output, I know that IMP is aware of them. This is as far as I can go.
I really don't know where to look now.
I'm using :
php 5.2.4
courier-imap 4.2.1 (same with 4.3.0)
$servers['imap'] = array(
'name' => 'IMAP Server',
'server' => '127.0.0.1',
'hordeauth' => true,
'protocol' => 'imap/notls',
'port' => 143,
'maildomain' => 'maison.local',
'smtphost' => '127.0.0.1',
'smtpport' => 25,
'realm' => '',
'preferred' => '',
'quota' => array(
'driver' => 'imap',
'params' => array(),
),
'acl' => array(
'driver' => 'rfc2086',
),
);
Thanks,
Ronan.