[horde] error when communicating with the mail server after upgrade

Andrew Watkins andrew at dcs.bbk.ac.uk
Thu Apr 30 14:54:11 UTC 2015


On 04/30/15 13:38, Andrew Watkins wrote:
> On 04/29/15 20:35, Arjen de Korte wrote:
>> Citeren Andrew Watkins <andrew at dcs.bbk.ac.uk>:
>>
>>> Hi,
>>>
>>> Just wondered if any one else is seeing this error. I just upgraded 
>>> to webmail 5.2.6 from 5.2.4 and get a "error when communicating with 
>>> the mail server" when I reading the e-mails.
>>>
>>> - can log into horde webmail
>>> - webmail displays the number of e-mails in inbox (Total = x)
>>> - when I go to list the e-mails nothing appears and "error when 
>>> communicating with the mail server"
>>>
>>> I have upgraded a few times before with no problems.
>>>
>>> cat imp/config/backends.local.php
>>> $servers['imap'] = array(
>>>     // Disabled by default
>>>     'disabled' => false,
>>>     'name' => 'IMAP Server',
>>>     'hostspec' => 'imap.dcs.bbk.ac.uk',
>>>     'hordeauth' => true,
>>>     'protocol' => 'imap',
>>>     'port' => 143,
>>>     'secure' => 'false',
>>>     'maildomain' => 'dcs.bbk.ac.uk',
>>>     'smtphost' => 'smtp.dcs.bbk.ac.uk',
>>>     'smtpport' => 25,
>>>     'acl' => false,
>>>     'cache' => false,
>>>     'capability_ignore' => array('ESEARCH'),
>>>     'imap_config' => array(
>>>         'children' => false,
>>>         'namespace' => array(
>>>         ),
>>>         'search_charset' => array(
>>>             'UTF-8' => true
>>>         )
>>>     )
>>> );
>>
>> The above backends.local.php is invalid. Do *not* define an array in 
>> backends.local.php, but only override values that need changing from 
>> the defaults provided in backends.php that is provided with the 
>> version you're upgrading to. The correct format is in the header and 
>> looks like
>>
>>    <?php
>>    $servers['imap']['hostspec'] = 'imap.example.com';
>>
>> It also looks like you have missed quite a few changes in the IMP 
>> configuration over time (and possibly other applications too). 
>> Support for the 'smtphost' and 'smtpport' for instance was removed 
>> with the IMP upgrade from 5.x to 6.x, so this won't work anymore. 
>> Please have a look at
>>
>>    http://www.horde.org/apps/imp/docs/UPGRADING
>>
>> for a list of changes. It is worth looking into this *before* upgrading.
>>
> I have update my backends.local.php:
>
>  $servers['imap']['name'] = 'IMAP Server';
>  $servers['imap']['disabled'] = false;
>  $servers['imap']['hostspec'] = 'imap.dcs.bbk.ac.uk';
>  $servers['imap']['hordeauth'] = true;
>  $servers['imap']['tls'] = 'tls';
>  $servers['imap']['maildomain'] = 'dcs.bbk.ac.uk';
>  $servers['imap']['smtp'] = array (
>         'horde_auth' => false,
>         'debug' => 'true',
>         'lmtp' => false
>  );
>  $servers['imap']['acl'] = false;
>  $servers['imap']['debug'] = '/tmp/imp.log';
>  $servers['advanced']['capability_ignore'] = array('ESEARCH');
>
> but then I notice errors in the web server logs:
>
> PHP Fatal error:  Only variables can be passed by reference in 
> /var/php/5.3/pear/Horde/Idna.php on line 42, referer: 
> https://webmail.dcs.bbk.ac.uk/webmail/imp/dynamic.php?page=mailbox
>
> which refers to the lines:
>
> case 'INTL_UTS46':
>             return idn_to_ascii($data, 0, INTL_IDNA_VARIANT_UTS46);
>
>
> and then later on it fails to find Class 'Horde_Idna' since the above 
> error.
>
> PHP Fatal error:  Class 'Horde_Idna' not found in 
> /var/php/5.3/pear/Horde/Mail/Rfc822/Address.php on line 96, referer: 
> https://webmail.dcs.bbk.ac.uk/webmail/imp/dynamic.php?page=mailbox
>
> I wonder if it is a compatible problem:
> $ /usr/php/5.3/bin/pecl -V
> PEAR Version: 1.9.5
> PHP Version: 5.3.29
> Zend Engine Version: 2.3.0
> Running on: SunOS webmail-master 5.11 11.2 i86pc
>
> Andrew
>
Look like it is a bug with the "passed by reference", so altered the code:

$ diff  Idna.php  Idna.orig
42,43c42
<             $zero = 0;
<             return idn_to_ascii($data, $zero, INTL_IDNA_VARIANT_UTS46);
---
 >             return idn_to_ascii($data, 0, INTL_IDNA_VARIANT_UTS46);
67,68c66
<                         $zero = 0;
<                         $part = idn_to_utf8($part, $zero, 
INTL_IDNA_VARIANT_UTS46);
---
 >                         $part = idn_to_utf8($part, 0, 
INTL_IDNA_VARIANT_UTS46);

Thanks,

Andrew

-- 
Andrew Watkins * Birkbeck, University of London * Computer Science *
* http://notallmicrosoft.blogspot.com *
* UKOUG Solaris SIG Co-Chair *
* UKOUG Systems Event 2015 committee *
* UKOUG Tech15 committee * Call for Papers: http://www.tech15.ukoug.org/default.asp?p=13527 *



More information about the horde mailing list