Discussion:
Kolab 3.4 and Vacation autoresponder
Homer Dokes
2017-08-29 00:13:14 UTC
Permalink
Greetings,

After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter.  I should add that
prior to the update the feature never worked for responding to any
outside emails.  It only ever worked for email addresses that were local
to the server... .i.e. from the same domain.  Prior to the update there
was a pre-defined vacation option in the filters setup.  This is no
longer there.  Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening.  I get no log feedback and no message is
sent back to the sender.

I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.

When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file.  That's the ONLY time anything ever gets logged related to sieve.

Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment?  Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically.  Shouldn't I be able see something logged from
Sieve when it's filters are executing?  How does Kolab tie Sieve into
cyrus to force the filter?

The server is running Debian 7.0 with the Kolab 3.4 community edition.

This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab.  Any assistance
would be greatly appreciated.

Thank you
Liutauras Adomaitis
2017-08-29 09:33:45 UTC
Permalink
Hi,
Post by Homer Dokes
Greetings,
After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter. I should add that
prior to the update the feature never worked for responding to any
outside emails. It only ever worked for email addresses that were local
to the server... .i.e. from the same domain. Prior to the update there
was a pre-defined vacation option in the filters setup. This is no
longer there. Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening. I get no log feedback and no message is
sent back to the sender.
I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.
When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file. That's the ONLY time anything ever gets logged related to sieve.
Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment? Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically. Shouldn't I be able see something logged from
Sieve when it's filters are executing? How does Kolab tie Sieve into
cyrus to force the filter?
The server is running Debian 7.0 with the Kolab 3.4 community edition.
This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab. Any assistance
would be greatly appreciated.
From Roundcube point of view the vacation settings item can be enabled in /
etc/roundcubemail/managesieve.inc.php file:
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;

Vacations autoresponse usually "just work", but:
- you should make sure /etc/imapd.conf has necessary extensions enabled with
parameter sieve_extensions
- you should define email addresses emails to which should be responded with
vacation message. Rounudcube Vacation config tool has that in advanced
settings.
- you should make sure vacation responder is enabled as sieve filter. After
creating vacation responder chec <sieve_dir parameter value>/domain/e/
excample.com/t/test^user/ directory. Check if sieve filter is created and if
it is included in the filters main file.
- I'm not sure if you should see anything in the logs, but you should
definetly see a new email generated by IMAP server - a auto-response email.
Cyrus use sendmail parameter in /etc/imapd.conf to call binary to generate new
email.

Liutauras
Aleksander Machniak
2017-08-29 09:46:06 UTC
Permalink
Post by Liutauras Adomaitis
From Roundcube point of view the vacation settings item can be enabled in /
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
I don't think this existed in Kolab 3.4, but you should be able to
configure vacation from the Filter tab still.
--
Aleksander Machniak
Senior Software Engineer
Kolab Systems AG: https://kolabsystems.com
PGP: 19359DC1
Lance Charette
2017-08-30 17:40:06 UTC
Permalink
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter. I should add that
prior to the update the feature never worked for responding to any
outside emails. It only ever worked for email addresses that were local
to the server... .i.e. from the same domain. Prior to the update there
was a pre-defined vacation option in the filters setup. This is no
longer there. Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening. I get no log feedback and no message is
sent back to the sender.
I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.
When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file. That's the ONLY time anything ever gets logged related to sieve.
Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment? Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically. Shouldn't I be able see something logged from
Sieve when it's filters are executing? How does Kolab tie Sieve into
cyrus to force the filter?
The server is running Debian 7.0 with the Kolab 3.4 community edition.
This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab. Any assistance
would be greatly appreciated.
From Roundcube point of view the vacation settings item can be enabled in /
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
- you should make sure /etc/imapd.conf has necessary extensions enabled with
parameter sieve_extensions
- you should define email addresses emails to which should be responded with
vacation message. Rounudcube Vacation config tool has that in advanced
settings.
- you should make sure vacation responder is enabled as sieve filter. After
creating vacation responder chec <sieve_dir parameter value>/domain/e/
excample.com/t/test^user/ directory. Check if sieve filter is created and if
it is included in the filters main file.
- I'm not sure if you should see anything in the logs, but you should
definetly see a new email generated by IMAP server - a auto-response email.
Cyrus use sendmail parameter in /etc/imapd.conf to call binary to generate new
email.
Liutauras
Hello Liutauras,

Thank you for your response.  I really appreciate it.  Here's what I
have found when checking against your list:

1. $config['managesieve_vacation'] = 1 -Found this set to 0. Once I set it back to 1 the vacation option
appeared in the roundcubemail settings list and could be edited.

2. In the /etc/imapd.conf file I have this which I think is what you were looking for:sieve_extensions: fileinto reject envelope body vacation imapflags
notify include regex subaddress relational copy date index

3. The vacation responder is enabled as a sieve filter and does show up
in the users active sieve script with the latest edits.

4. When users within the email domain send each other email the vacation
auto responder triggers and does send out the message. Here is a snippit
from my syslog showing the response is logged:

  Aug 30 13:25:11 mail postfix/lmtp[867]: C852A20A7:
to=<***@lcent.com>, relay=mail.lcent.com[/var/lib/imap/socket/lmtp],
delay=0.35, delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5
Ok SESSIONID=<mail.lcent.com-861-1504113910-1-3775082477817360626>)

When users receive outside the email domain, then no response is set and
there is no corresponding message in syslog.

Is there a setting that makes a difference for externally originated
emails?  Is there some log we can review to identify if cyrus is
actually employing the sieve filter on external emails?
Homer Dokes
2017-08-30 18:14:26 UTC
Permalink
Post by Lance Charette
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter. I should add that
prior to the update the feature never worked for responding to any
outside emails. It only ever worked for email addresses that were local
to the server... .i.e. from the same domain. Prior to the update there
was a pre-defined vacation option in the filters setup. This is no
longer there. Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening. I get no log feedback and no message is
sent back to the sender.
I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.
When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file. That's the ONLY time anything ever gets logged related to sieve.
Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment? Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically. Shouldn't I be able see something logged from
Sieve when it's filters are executing? How does Kolab tie Sieve into
cyrus to force the filter?
The server is running Debian 7.0 with the Kolab 3.4 community edition.
This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab. Any assistance
would be greatly appreciated.
From Roundcube point of view the vacation settings item can be enabled in /
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
- you should make sure /etc/imapd.conf has necessary extensions enabled with
parameter sieve_extensions
- you should define email addresses emails to which should be responded with
vacation message. Rounudcube Vacation config tool has that in advanced
settings.
- you should make sure vacation responder is enabled as sieve filter. After
creating vacation responder chec <sieve_dir parameter value>/domain/e/
excample.com/t/test^user/ directory. Check if sieve filter is created and if
it is included in the filters main file.
- I'm not sure if you should see anything in the logs, but you should
definetly see a new email generated by IMAP server - a auto-response email.
Cyrus use sendmail parameter in /etc/imapd.conf to call binary to generate new
email.
Liutauras
Hello Liutauras,
Thank you for your response.  I really appreciate it.  Here's what I
1. $config['managesieve_vacation'] = 1 -Found this set to 0. Once I set it back to 1 the vacation option
appeared in the roundcubemail settings list and could be edited.
2. In the /etc/imapd.conf file I have this which I think is what you were looking for:sieve_extensions: fileinto reject envelope body vacation imapflags
notify include regex subaddress relational copy date index
3. The vacation responder is enabled as a sieve filter and does show
up in the users active sieve script with the latest edits.
4. When users within the email domain send each other email the
vacation auto responder triggers and does send out the message. Here
delay=0.35, delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5
Ok SESSIONID=<mail.lcent.com-861-1504113910-1-3775082477817360626>)
When users receive outside the email domain, then no response is set
and there is no corresponding message in syslog.
Is there a setting that makes a difference for externally originated
emails?  Is there some log we can review to identify if cyrus is
actually employing the sieve filter on external emails?
Here is a more complete snippet of the syslog entries that pertain to
the successful vacation response for an internal test mail.  My son
indicated I should be more careful about scrubbing private info from
logs before pasting them on a mailing list.  As an exercise to build up
that habit, I've changed the mail addresses in the logs to redact them.

Aug 30 13:25:09 mail imap[615]: login: localhost [::1]
test-***@example.com PLAIN+TLS User logged in
SESSIONID=<mail.example.com-615-1504113909-1-11718444001764406470>
Aug 30 13:25:09 mail postfix/submission/smtpd[847]: DD8AA20A0:
client=mail.example.com[127.0.0.1], sasl_method=LOGIN,
sasl_username=test-***@example.com
Aug 30 13:25:10 mail postfix/qmgr[4092]: DD8AA20A0:
from=<test-***@example.com>, size=416, nrcpt=1 (queue active)
Aug 30 13:25:10 mail postfix/qmgr[4092]: 464A120A5:
from=<test-***@example.com>, size=416, nrcpt=1 (queue active)
Aug 30 13:25:10 mail amavis[63993]: (63993-19) Passed CLEAN
{RelayedInternal}, LOCAL [127.0.0.1]:44008 <test-***@example.com>
-> <***@example.com>, Queue-ID: DD8AA20A0, Message-ID:
<***@example.com>, mail_id:
S5M21lGIAZg2, Hits: -, size: 416, queued_as: 464A120A5, 297 ms
Aug 30 13:25:10 mail imap[615]: USAGE test-***@example.com user:
0.012001 sys: 0.008001
Aug 30 13:25:10 mail postfix/qmgr[4092]: 6D82320A0:
from=<test-***@example.com>, size=524, nrcpt=1 (queue active)
Aug 30 13:25:10 mail postfix/smtp[857]: BC14C20A5:
to=<test-***@example.com>, relay=127.0.0.1[127.0.0.1]:10026,
delay=0.09, delays=0.08/0/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 13:25:10 mail amavis[728]: (00728-02) Passed CLEAN
{RelayedInbound}, <> -> <test-***@example.com>, Message-ID:
<cmu-sieve-754-1504113910-***@mail.example.com>, mail_id:
dlqzjee0pGKq, Hits: -, size: 603, queued_as: BC14C20A5, 151 ms
Aug 30 13:25:10 mail postfix/smtp[853]: 94C8F20A7:
to=<test-***@example.com>, relay=127.0.0.1[127.0.0.1]:10024,
delay=0.24, delays=0.09/0/0/0.15, dsn=2.0.0, status=sent (250 2.0.0
from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as BC14C20A5)
Aug 30 13:25:11 mail postfix/lmtp[867]: C852A20A7:
to=<test-***@example.com>,
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-861-1504113910-1-3775082477817360626>)

I'll try to catch similar logs for an external email test for comparison.
Homer Dokes
2017-08-30 18:58:51 UTC
Permalink
Post by Homer Dokes
Post by Lance Charette
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter. I should add that
prior to the update the feature never worked for responding to any
outside emails. It only ever worked for email addresses that were local
to the server... .i.e. from the same domain. Prior to the update there
was a pre-defined vacation option in the filters setup. This is no
longer there. Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening. I get no log feedback and no message is
sent back to the sender.
I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.
When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file. That's the ONLY time anything ever gets logged related to sieve.
Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment? Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically. Shouldn't I be able see something logged from
Sieve when it's filters are executing? How does Kolab tie Sieve into
cyrus to force the filter?
The server is running Debian 7.0 with the Kolab 3.4 community edition.
This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab. Any assistance
would be greatly appreciated.
From Roundcube point of view the vacation settings item can be enabled in /
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
- you should make sure /etc/imapd.conf has necessary extensions enabled with
parameter sieve_extensions
- you should define email addresses emails to which should be responded with
vacation message. Rounudcube Vacation config tool has that in advanced
settings.
- you should make sure vacation responder is enabled as sieve filter. After
creating vacation responder chec <sieve_dir parameter value>/domain/e/
excample.com/t/test^user/ directory. Check if sieve filter is created and if
it is included in the filters main file.
- I'm not sure if you should see anything in the logs, but you should
definetly see a new email generated by IMAP server - a auto-response email.
Cyrus use sendmail parameter in /etc/imapd.conf to call binary to generate new
email.
Liutauras
Hello Liutauras,
Thank you for your response.  I really appreciate it.  Here's what I
1. $config['managesieve_vacation'] = 1 -Found this set to 0. Once I set it back to 1 the vacation option
appeared in the roundcubemail settings list and could be edited.
2. In the /etc/imapd.conf file I have this which I think is what you were looking for:sieve_extensions: fileinto reject envelope body vacation imapflags
notify include regex subaddress relational copy date index
3. The vacation responder is enabled as a sieve filter and does show
up in the users active sieve script with the latest edits.
4. When users within the email domain send each other email the
vacation auto responder triggers and does send out the message.  Here
relay=mail.lcent.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.lcent.com-861-1504113910-1-3775082477817360626>)
When users receive outside the email domain, then no response is set
and there is no corresponding message in syslog.
Is there a setting that makes a difference for externally originated
emails?  Is there some log we can review to identify if cyrus is
actually employing the sieve filter on external emails?
Here is a more complete snippet of the syslog entries that pertain to
the successful vacation response for an internal test mail.  My son
indicated I should be more careful about scrubbing private info from
logs before pasting them on a mailing list. As an exercise to build up
that habit, I've changed the mail addresses in the logs to redact them.
Aug 30 13:25:09 mail imap[615]: login: localhost [::1]
SESSIONID=<mail.example.com-615-1504113909-1-11718444001764406470>
client=mail.example.com[127.0.0.1], sasl_method=LOGIN,
Aug 30 13:25:10 mail amavis[63993]: (63993-19) Passed CLEAN
S5M21lGIAZg2, Hits: -, size: 416, queued_as: 464A120A5, 297 ms
0.012001 sys: 0.008001
delay=0.09, delays=0.08/0/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 13:25:10 mail amavis[728]: (00728-02) Passed CLEAN
dlqzjee0pGKq, Hits: -, size: 603, queued_as: BC14C20A5, 151 ms
delay=0.24, delays=0.09/0/0/0.15, dsn=2.0.0, status=sent (250
2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as
BC14C20A5)
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-861-1504113910-1-3775082477817360626>)
I'll try to catch similar logs for an external email test for comparison.
Here is a log snippet when testing for a vacation response to an
external address.  The external domain is not gmail.com (more redaction
practice), but instead a separate kolab 3.4 server I maintain.

Aug 30 14:24:10 mail postfix/smtpd[2198]:   connect from
unknown[192.168.70.171]
Aug 30 14:24:12 mail postfix/smtpd[2198]:   B49DA206A:
client=unknown[192.168.70.171]
Aug 30 14:24:12 mail postfix/cleanup[2206]: B49DA206A:
message-id=<***@gmail.com>
Aug 30 14:24:12 mail postfix/qmgr[4092]:    B49DA206A:
from=<SRS0=c0k5=AA=gmail.com=test-***@example.com>, size=1635,
nrcpt=1 (queue active)
Aug 30 14:24:12 mail postfix/smtpd[2198]:   disconnect from
unknown[192.168.70.171]
Aug 30 14:24:12 mail postfix/smtpd[2209]:   connect from
mail.example.com[127.0.0.1]
Aug 30 14:24:12 mail postfix/smtpd[2209]:   EDFA620A0:
client=mail.example.com[127.0.0.1], orig_queue_id=B49DA206A,
orig_client=unknown[192.168.70.171]
Aug 30 14:24:12 mail postfix/cleanup[2210]: EDFA620A0:
message-id=<***@gmail.com>
Aug 30 14:24:13 mail postfix/qmgr[4092]:    EDFA620A0:
from=<SRS0=c0k5=AA=gmail.com=test-***@example.com>, size=1215,
nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2209]:   disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail amavis[728]:           (00728-11) Passed CLEAN
{RelayedInternal}, LOCAL [192.168.70.171]:53110 [97.78.86.98]
<SRS0=c0k5=AA=gmail.com=test-***@example.com> ->
<***@example.com>, Queue-ID: B49DA206A, Message-ID:
<***@gmail.com>, mail_id: t4STGW5NSFwZ,
Hits: -, size: 1634, queued_as: EDFA620A0, 218 ms
Aug 30 14:24:13 mail postfix/smtp[2207]:    B49DA206A:
to=<***@example.com>, relay=127.0.0.1[127.0.0.1]:10024,
delay=2.1, delays=1.9/0.01/0/0.22, dsn=2.0.0, status=sent (250 2.0.0
from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as EDFA620A0)
Aug 30 14:24:13 mail postfix/qmgr[4092]:    B49DA206A: removed
Aug 30 14:24:13 mail postfix/smtp[2211]:    EDFA620A0:
to=<***@example.com>, relay=127.0.0.1[127.0.0.1]:10026,
delay=0.11, delays=0.09/0.02/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 14:24:13 mail postfix/qmgr[4092]:    EDFA620A0: removed
Aug 30 14:24:13 mail postfix/smtpd[2212]:   connect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/smtpd[2212]:   1EE4C20A0:
client=mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/cleanup[2210]: 1EE4C20A0:
message-id=<***@gmail.com>
Aug 30 14:24:13 mail postfix/qmgr[4092]:    1EE4C20A0:
from=<SRS0=c0k5=AA=gmail.com=test-***@example.com>, size=1218,
nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2212]:   disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/pickup[606]:   44AD120A4: uid=104 from=<>
Aug 30 14:24:13 mail postfix/cleanup[2206]: 44AD120A4:
message-id=<cmu-sieve-2197-1504117453-***@mail.example.com>
Aug 30 14:24:13 mail postfix/qmgr[4092]:    44AD120A4: from=<>,
size=643, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2209]:   connect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/smtpd[2209]:   5FDD3206A:
client=mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/cleanup[2210]: 5FDD3206A:
message-id=<cmu-sieve-2197-1504117453-***@mail.example.com>
Aug 30 14:24:13 mail postfix/smtpd[2209]:   disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/qmgr[4092]:    5FDD3206A: from=<>,
size=643, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtp[2211]:    5FDD3206A:
to=<SRS0=c0k5=AA=gmail.com=test-***@example.com>,
relay=127.0.0.1[127.0.0.1]:10026, delay=0.07, delays=0.07/0/0/0,
dsn=2.0.0, status=sent (250 Ok)
Aug 30 14:24:13 mail postfix/qmgr[4092]:    5FDD3206A: removed
Aug 30 14:24:13 mail amavis[876]:           (00876-09) Passed CLEAN
{RelayedInbound}, <> ->
<SRS0=c0k5=AA=gmail.com=test-***@example.com>, Message-ID:
<cmu-sieve-2197-1504117453-***@mail.example.com>, mail_id:
wXheNo2ZCwTA, Hits: -, size: 643, queued_as: 5FDD3206A, 141 ms
Aug 30 14:24:13 mail postfix/smtp[2207]:    44AD120A4:
to=<SRS0=c0k5=AA=gmail.com=test-***@example.com>,
relay=127.0.0.1[127.0.0.1]:10024, delay=0.22, delays=0.07/0/0/0.14,
dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025):
250 2.0.0 Ok: queued as 5FDD3206A)
Aug 30 14:24:13 mail postfix/qmgr[4092]:    44AD120A4: removed
Aug 30 14:24:13 mail postfix/smtpd[2212]:   connect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/smtpd[2212]:   74C8020A4:
client=mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/cleanup[2210]: 74C8020A4:
message-id=<cmu-sieve-2197-1504117453-***@mail.example.com>
Aug 30 14:24:13 mail lmtpunix[2197]:        Delivered:
<***@gmail.com> to mailbox:
example.com!user.hdokes
Aug 30 14:24:13 mail postfix/qmgr[4092]:    74C8020A4: from=<>,
size=766, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2212]:   disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/local[2219]:   74C8020A4:
to=<SRS0=c0k5=AA=gmail.com=test-***@example.com>, relay=local,
delay=0.16, delays=0.07/0.04/0/0.04, dsn=5.1.1, status=bounced
(unknown user: "srs0=c0k5=aa=gmail.com=test-user")
Aug 30 14:24:13 mail postfix/qmgr[4092]:    74C8020A4: removed
Aug 30 14:24:13 mail lmtpunix[2197]:        USAGE ***@example.com
user: 0.008000 sys: 0.008000
Aug 30 14:24:13 mail postfix/lmtp[2213]:    1EE4C20A0:
to=<***@example.com>,
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.55,
delays=0.04/0.04/0/0.47, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-2197-1504117453-1-201748317146241090>)
Aug 30 14:24:13 mail postfix/qmgr[4092]:    1EE4C20A0: removed

This bit below strikes me as odd...

Aug 30 14:24:12 mail postfix/qmgr[4092]:    B49DA206A:
from=<SRS0=c0k5=AA=gmail.com=test-***@example.com>, size=1635,
nrcpt=1 (queue active)

...as I expected the "from" address to be "test-***@gmail.com". I'm not
sure what is mangling the sender address.  Later on it seems the
vacation reply may be attempted, but the reply address is unknown?

Aug 30 14:24:13 mail postfix/local[2219]:   74C8020A4:
to=<SRS0=c0k5=AA=gmail.com=test-***@example.com>, relay=local,
delay=0.16, delays=0.07/0.04/0/0.04, dsn=5.1.1, status=bounced
(unknown user: "srs0=c0k5=aa=gmail.com=test-user")
Liutauras Adomaitis
2017-08-31 06:32:19 UTC
Permalink
Hi,
Post by Homer Dokes
Post by Homer Dokes
Post by Lance Charette
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter. I should add that
prior to the update the feature never worked for responding to any
outside emails. It only ever worked for email addresses that were local
to the server... .i.e. from the same domain. Prior to the update there
was a pre-defined vacation option in the filters setup. This is no
longer there. Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening. I get no log feedback and no message is
sent back to the sender.
I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.
When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file. That's the ONLY time anything ever gets logged related to sieve.
Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment? Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically. Shouldn't I be able see something logged from
Sieve when it's filters are executing? How does Kolab tie Sieve into
cyrus to force the filter?
The server is running Debian 7.0 with the Kolab 3.4 community edition.
This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab. Any assistance
would be greatly appreciated.
From Roundcube point of view the vacation settings item can be enabled in /
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
- you should make sure /etc/imapd.conf has necessary extensions enabled
with parameter sieve_extensions
- you should define email addresses emails to which should be responded
with vacation message. Rounudcube Vacation config tool has that in
advanced settings.
- you should make sure vacation responder is enabled as sieve filter. After
creating vacation responder chec <sieve_dir parameter value>/domain/e/
excample.com/t/test^user/ directory. Check if sieve filter is created
and if it is included in the filters main file.
- I'm not sure if you should see anything in the logs, but you should
definetly see a new email generated by IMAP server - a auto-response email.
Cyrus use sendmail parameter in /etc/imapd.conf to call binary to
generate new email.
Liutauras
Hello Liutauras,
Thank you for your response. I really appreciate it. Here's what I
1. $config['managesieve_vacation'] = 1 -Found this set to 0. Once I set
it back to 1 the vacation option appeared in the roundcubemail settings
list and could be edited.
2. In the /etc/imapd.conf file I have this which I think is what you were
looking for:sieve_extensions: fileinto reject envelope body vacation
imapflags notify include regex subaddress relational copy date index
3. The vacation responder is enabled as a sieve filter and does show
up in the users active sieve script with the latest edits.
4. When users within the email domain send each other email the
vacation auto responder triggers and does send out the message. Here
relay=mail.lcent.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.lcent.com-861-1504113910-1-3775082477817360626>)
When users receive outside the email domain, then no response is set
and there is no corresponding message in syslog.
Is there a setting that makes a difference for externally originated
emails? Is there some log we can review to identify if cyrus is
actually employing the sieve filter on external emails?
Here is a more complete snippet of the syslog entries that pertain to
the successful vacation response for an internal test mail. My son
indicated I should be more careful about scrubbing private info from
logs before pasting them on a mailing list. As an exercise to build up
that habit, I've changed the mail addresses in the logs to redact them.
Aug 30 13:25:09 mail imap[615]: login: localhost [::1]
SESSIONID=<mail.example.com-615-1504113909-1-11718444001764406470>
client=mail.example.com[127.0.0.1], sasl_method=LOGIN,
Aug 30 13:25:10 mail amavis[63993]: (63993-19) Passed CLEAN
S5M21lGIAZg2, Hits: -, size: 416, queued_as: 464A120A5, 297 ms
0.012001 sys: 0.008001
delay=0.09, delays=0.08/0/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 13:25:10 mail amavis[728]: (00728-02) Passed CLEAN
dlqzjee0pGKq, Hits: -, size: 603, queued_as: BC14C20A5, 151 ms
delay=0.24, delays=0.09/0/0/0.15, dsn=2.0.0, status=sent (250
2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as
BC14C20A5)
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-861-1504113910-1-3775082477817360626>)
I'll try to catch similar logs for an external email test for comparison.
Here is a log snippet when testing for a vacation response to an
external address. The external domain is not gmail.com (more redaction
practice), but instead a separate kolab 3.4 server I maintain.
Aug 30 14:24:10 mail postfix/smtpd[2198]: connect from
unknown[192.168.70.171]
client=unknown[192.168.70.171]
nrcpt=1 (queue active)
Aug 30 14:24:12 mail postfix/smtpd[2198]: disconnect from
unknown[192.168.70.171]
Aug 30 14:24:12 mail postfix/smtpd[2209]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1], orig_queue_id=B49DA206A,
orig_client=unknown[192.168.70.171]
nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2209]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail amavis[728]: (00728-11) Passed CLEAN
{RelayedInternal}, LOCAL [192.168.70.171]:53110 [97.78.86.98]
Hits: -, size: 1634, queued_as: EDFA620A0, 218 ms
delay=2.1, delays=1.9/0.01/0/0.22, dsn=2.0.0, status=sent (250 2.0.0
from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as EDFA620A0)
Aug 30 14:24:13 mail postfix/qmgr[4092]: B49DA206A: removed
delay=0.11, delays=0.09/0.02/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 14:24:13 mail postfix/qmgr[4092]: EDFA620A0: removed
Aug 30 14:24:13 mail postfix/smtpd[2212]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2212]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/pickup[606]: 44AD120A4: uid=104 from=<>
Aug 30 14:24:13 mail postfix/qmgr[4092]: 44AD120A4: from=<>,
size=643, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2209]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/smtpd[2209]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/qmgr[4092]: 5FDD3206A: from=<>,
size=643, nrcpt=1 (queue active)
relay=127.0.0.1[127.0.0.1]:10026, delay=0.07, delays=0.07/0/0/0,
dsn=2.0.0, status=sent (250 Ok)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 5FDD3206A: removed
Aug 30 14:24:13 mail amavis[876]: (00876-09) Passed CLEAN
{RelayedInbound}, <> ->
wXheNo2ZCwTA, Hits: -, size: 643, queued_as: 5FDD3206A, 141 ms
relay=127.0.0.1[127.0.0.1]:10024, delay=0.22, delays=0.07/0/0/0.14,
250 2.0.0 Ok: queued as 5FDD3206A)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 44AD120A4: removed
Aug 30 14:24:13 mail postfix/smtpd[2212]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
example.com!user.hdokes
Aug 30 14:24:13 mail postfix/qmgr[4092]: 74C8020A4: from=<>,
size=766, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2212]: disconnect from
mail.example.com[127.0.0.1]
delay=0.16, delays=0.07/0.04/0/0.04, dsn=5.1.1, status=bounced
(unknown user: "srs0=c0k5=aa=gmail.com=test-user")
Aug 30 14:24:13 mail postfix/qmgr[4092]: 74C8020A4: removed
user: 0.008000 sys: 0.008000
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.55,
delays=0.04/0.04/0/0.47, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-2197-1504117453-1-201748317146241090>)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 1EE4C20A0: removed
This bit below strikes me as odd...
nrcpt=1 (queue active)
sure what is mangling the sender address. Later on it seems the
vacation reply may be attempted, but the reply address is unknown?
delay=0.16, delays=0.07/0.04/0/0.04, dsn=5.1.1, status=bounced
(unknown user: "srs0=c0k5=aa=gmail.com=test-user")
It looks like the vacation reply message was generated. The message with
message-id=<cmu-sieve-2197-1504117453-***@mail.example.com> looks like the one.
The message queue ID was 44AD120A4, then 5FDD3206A and then 74C8020A4.
It was bounced with error "status=bounced (unknown user:
"srs0=c0k5=aa=gmail.com=test-user")".
The next step of the investigation should continue to understand why external
email coming to your server looks like coming from the internal domain:
to=<SRS0=c0k5=AA=gmail.com=test-***@example.com>
example.com is your internal domain?

Liutauras
Homer Dokes
2017-09-01 15:01:31 UTC
Permalink
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Post by Homer Dokes
Post by Lance Charette
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter. I should add that
prior to the update the feature never worked for responding to any
outside emails. It only ever worked for email addresses that were local
to the server... .i.e. from the same domain. Prior to the update there
was a pre-defined vacation option in the filters setup. This is no
longer there. Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening. I get no log feedback and no message is
sent back to the sender.
I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.
When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file. That's the ONLY time anything ever gets logged related to sieve.
Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment? Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically. Shouldn't I be able see something logged from
Sieve when it's filters are executing? How does Kolab tie Sieve into
cyrus to force the filter?
The server is running Debian 7.0 with the Kolab 3.4 community edition.
This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab. Any assistance
would be greatly appreciated.
From Roundcube point of view the vacation settings item can be enabled in /
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
- you should make sure /etc/imapd.conf has necessary extensions enabled
with parameter sieve_extensions
- you should define email addresses emails to which should be responded
with vacation message. Rounudcube Vacation config tool has that in
advanced settings.
- you should make sure vacation responder is enabled as sieve filter. After
creating vacation responder chec <sieve_dir parameter value>/domain/e/
excample.com/t/test^user/ directory. Check if sieve filter is created
and if it is included in the filters main file.
- I'm not sure if you should see anything in the logs, but you should
definetly see a new email generated by IMAP server - a auto-response email.
Cyrus use sendmail parameter in /etc/imapd.conf to call binary to
generate new email.
Liutauras
Hello Liutauras,
Thank you for your response. I really appreciate it. Here's what I
1. $config['managesieve_vacation'] = 1 -Found this set to 0. Once I set
it back to 1 the vacation option appeared in the roundcubemail settings
list and could be edited.
2. In the /etc/imapd.conf file I have this which I think is what you were
looking for:sieve_extensions: fileinto reject envelope body vacation
imapflags notify include regex subaddress relational copy date index
3. The vacation responder is enabled as a sieve filter and does show
up in the users active sieve script with the latest edits.
4. When users within the email domain send each other email the
vacation auto responder triggers and does send out the message. Here
to=<userA at lcent.com>,
relay=mail.lcent.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.lcent.com-861-1504113910-1-3775082477817360626>)
When users receive outside the email domain, then no response is set
and there is no corresponding message in syslog.
Is there a setting that makes a difference for externally originated
emails? Is there some log we can review to identify if cyrus is
actually employing the sieve filter on external emails?
Here is a more complete snippet of the syslog entries that pertain to
the successful vacation response for an internal test mail. My son
indicated I should be more careful about scrubbing private info from
logs before pasting them on a mailing list. As an exercise to build up
that habit, I've changed the mail addresses in the logs to redact them.
Aug 30 13:25:09 mail imap[615]: login: localhost [::1]
test-user at example.com PLAIN+TLS User logged in
SESSIONID=<mail.example.com-615-1504113909-1-11718444001764406470>
client=mail.example.com[127.0.0.1], sasl_method=LOGIN,
sasl_username=test-user at example.com
from=<test-user at example.com>, size=416, nrcpt=1 (queue active)
from=<test-user at example.com>, size=416, nrcpt=1 (queue active)
Aug 30 13:25:10 mail amavis[63993]: (63993-19) Passed CLEAN
{RelayedInternal}, LOCAL [127.0.0.1]:44008 <test-user at example.com>
S5M21lGIAZg2, Hits: -, size: 416, queued_as: 464A120A5, 297 ms
0.012001 sys: 0.008001
from=<test-user at example.com>, size=524, nrcpt=1 (queue active)
to=<test-user at example.com>, relay=127.0.0.1[127.0.0.1]:10026,
delay=0.09, delays=0.08/0/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 13:25:10 mail amavis[728]: (00728-02) Passed CLEAN
dlqzjee0pGKq, Hits: -, size: 603, queued_as: BC14C20A5, 151 ms
to=<test-user at example.com>, relay=127.0.0.1[127.0.0.1]:10024,
delay=0.24, delays=0.09/0/0/0.15, dsn=2.0.0, status=sent (250
2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as
BC14C20A5)
to=<test-user at example.com>,
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-861-1504113910-1-3775082477817360626>)
I'll try to catch similar logs for an external email test for comparison.
Here is a log snippet when testing for a vacation response to an
external address. The external domain is not gmail.com (more redaction
practice), but instead a separate kolab 3.4 server I maintain.
Aug 30 14:24:10 mail postfix/smtpd[2198]: connect from
unknown[192.168.70.171]
client=unknown[192.168.70.171]
message-id=<515ef56771f28ed566b1226bda4271ec at gmail.com>
from=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, size=1635,
nrcpt=1 (queue active)
Aug 30 14:24:12 mail postfix/smtpd[2198]: disconnect from
unknown[192.168.70.171]
Aug 30 14:24:12 mail postfix/smtpd[2209]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1], orig_queue_id=B49DA206A,
orig_client=unknown[192.168.70.171]
message-id=<515ef56771f28ed566b1226bda4271ec at gmail.com>
from=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, size=1215,
nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2209]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail amavis[728]: (00728-11) Passed CLEAN
{RelayedInternal}, LOCAL [192.168.70.171]:53110 [97.78.86.98]
<SRS0=c0k5=AA=gmail.com=test-user at example.com> ->
<515ef56771f28ed566b1226bda4271ec at gmail.com>, mail_id: t4STGW5NSFwZ,
Hits: -, size: 1634, queued_as: EDFA620A0, 218 ms
to=<hdokes at example.com>, relay=127.0.0.1[127.0.0.1]:10024,
delay=2.1, delays=1.9/0.01/0/0.22, dsn=2.0.0, status=sent (250 2.0.0
from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as EDFA620A0)
Aug 30 14:24:13 mail postfix/qmgr[4092]: B49DA206A: removed
to=<hdokes at example.com>, relay=127.0.0.1[127.0.0.1]:10026,
delay=0.11, delays=0.09/0.02/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 14:24:13 mail postfix/qmgr[4092]: EDFA620A0: removed
Aug 30 14:24:13 mail postfix/smtpd[2212]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
message-id=<515ef56771f28ed566b1226bda4271ec at gmail.com>
from=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, size=1218,
nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2212]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/pickup[606]: 44AD120A4: uid=104 from=<>
message-id=<cmu-sieve-2197-1504117453-0 at mail.example.com>
Aug 30 14:24:13 mail postfix/qmgr[4092]: 44AD120A4: from=<>,
size=643, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2209]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
message-id=<cmu-sieve-2197-1504117453-0 at mail.example.com>
Aug 30 14:24:13 mail postfix/smtpd[2209]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/qmgr[4092]: 5FDD3206A: from=<>,
size=643, nrcpt=1 (queue active)
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>,
relay=127.0.0.1[127.0.0.1]:10026, delay=0.07, delays=0.07/0/0/0,
dsn=2.0.0, status=sent (250 Ok)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 5FDD3206A: removed
Aug 30 14:24:13 mail amavis[876]: (00876-09) Passed CLEAN
{RelayedInbound}, <> ->
wXheNo2ZCwTA, Hits: -, size: 643, queued_as: 5FDD3206A, 141 ms
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>,
relay=127.0.0.1[127.0.0.1]:10024, delay=0.22, delays=0.07/0/0/0.14,
250 2.0.0 Ok: queued as 5FDD3206A)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 44AD120A4: removed
Aug 30 14:24:13 mail postfix/smtpd[2212]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
message-id=<cmu-sieve-2197-1504117453-0 at mail.example.com>
example.com!user.hdokes
Aug 30 14:24:13 mail postfix/qmgr[4092]: 74C8020A4: from=<>,
size=766, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2212]: disconnect from
mail.example.com[127.0.0.1]
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, relay=local,
delay=0.16, delays=0.07/0.04/0/0.04, dsn=5.1.1, status=bounced
(unknown user: "srs0=c0k5=aa=gmail.com=test-user")
Aug 30 14:24:13 mail postfix/qmgr[4092]: 74C8020A4: removed
Aug 30 14:24:13 mail lmtpunix[2197]: USAGE hdokes at example.com
user: 0.008000 sys: 0.008000
to=<hdokes at example.com>,
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.55,
delays=0.04/0.04/0/0.47, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-2197-1504117453-1-201748317146241090>)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 1EE4C20A0: removed
This bit below strikes me as odd...
from=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, size=1635,
nrcpt=1 (queue active)
...as I expected the "from" address to be "test-user at gmail.com". I'm not
sure what is mangling the sender address. Later on it seems the
vacation reply may be attempted, but the reply address is unknown?
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, relay=local,
delay=0.16, delays=0.07/0.04/0/0.04, dsn=5.1.1, status=bounced
(unknown user: "srs0=c0k5=aa=gmail.com=test-user")
It looks like the vacation reply message was generated. The message with
message-id=<cmu-sieve-2197-1504117453-0 at mail.example.com> looks like the one.
The message queue ID was 44AD120A4, then 5FDD3206A and then 74C8020A4.
"srs0=c0k5=aa=gmail.com=test-user")".
The next step of the investigation should continue to understand why external
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>
example.com is your internal domain?
Liutauras
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.kolab.org/pipermail/users/attachments/20170831/7770faba/attachment.sig>
Thanks for your insight, Liutauras.
Post by Liutauras Adomaitis
example.com is your internal domain?
Yes, example.com in my log snippets is my internal domain. I used
gmail.com to redact the external domain.
Post by Liutauras Adomaitis
The next step of the investigation should continue to understand why external
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>
I agree.

Is it safe the say that cyrus will never rewrite the email addresses
in this fashion? I wouldn't even know how to turn such a feature on if
cyrus was capable.

Maybe this issue might be with an external utility I've tacked on to the
kolab installation. I do use Scrollout F1 as my spam filter. I'll dig
through the logs and manual for it and see if it's capable of this
behavior.

Homer Dokes
Homer Dokes
2017-09-08 00:10:07 UTC
Permalink
Post by Homer Dokes
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Post by Homer Dokes
Post by Lance Charette
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter. I should add that
prior to the update the feature never worked for responding to any
outside emails. It only ever worked for email addresses that were local
to the server... .i.e. from the same domain. Prior to the update there
was a pre-defined vacation option in the filters setup. This is no
longer there. Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening. I get no log feedback and no message is
sent back to the sender.
I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.
When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file. That's the ONLY time anything ever gets logged related to sieve.
Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment? Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically. Shouldn't I be able see something logged from
Sieve when it's filters are executing? How does Kolab tie Sieve into
cyrus to force the filter?
The server is running Debian 7.0 with the Kolab 3.4 community edition.
This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab. Any assistance
would be greatly appreciated.
From Roundcube point of view the vacation settings item can be enabled
in /
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
- you should make sure /etc/imapd.conf has necessary extensions enabled
with parameter sieve_extensions
- you should define email addresses emails to which should be responded
with vacation message. Rounudcube Vacation config tool has that in
advanced settings.
- you should make sure vacation responder is enabled as sieve filter. After
creating vacation responder chec <sieve_dir parameter value>/domain/e/
excample.com/t/test^user/ directory. Check if sieve filter is created
and if it is included in the filters main file.
- I'm not sure if you should see anything in the logs, but you should
definetly see a new email generated by IMAP server - a auto-response email.
Cyrus use sendmail parameter in /etc/imapd.conf to call binary to
generate new email.
Liutauras
Hello Liutauras,
Thank you for your response. I really appreciate it. Here's what I
1. $config['managesieve_vacation'] = 1 -Found this set to 0. Once I set
it back to 1 the vacation option appeared in the roundcubemail settings
list and could be edited.
2. In the /etc/imapd.conf file I have this which I think is what you were
looking for:sieve_extensions: fileinto reject envelope body vacation
imapflags notify include regex subaddress relational copy date index
3. The vacation responder is enabled as a sieve filter and does show
up in the users active sieve script with the latest edits.
4. When users within the email domain send each other email the
vacation auto responder triggers and does send out the message. Here
to=<userA at lcent.com>,
relay=mail.lcent.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.lcent.com-861-1504113910-1-3775082477817360626>)
When users receive outside the email domain, then no response is set
and there is no corresponding message in syslog.
Is there a setting that makes a difference for externally originated
emails? Is there some log we can review to identify if cyrus is
actually employing the sieve filter on external emails?
Here is a more complete snippet of the syslog entries that pertain to
the successful vacation response for an internal test mail. My son
indicated I should be more careful about scrubbing private info from
logs before pasting them on a mailing list. As an exercise to build up
that habit, I've changed the mail addresses in the logs to redact them.
Aug 30 13:25:09 mail imap[615]: login: localhost [::1]
test-user at example.com PLAIN+TLS User logged in
SESSIONID=<mail.example.com-615-1504113909-1-11718444001764406470>
client=mail.example.com[127.0.0.1], sasl_method=LOGIN,
sasl_username=test-user at example.com
from=<test-user at example.com>, size=416, nrcpt=1 (queue active)
from=<test-user at example.com>, size=416, nrcpt=1 (queue active)
Aug 30 13:25:10 mail amavis[63993]: (63993-19) Passed CLEAN
{RelayedInternal}, LOCAL [127.0.0.1]:44008 <test-user at example.com>
S5M21lGIAZg2, Hits: -, size: 416, queued_as: 464A120A5, 297 ms
0.012001 sys: 0.008001
from=<test-user at example.com>, size=524, nrcpt=1 (queue active)
to=<test-user at example.com>, relay=127.0.0.1[127.0.0.1]:10026,
delay=0.09, delays=0.08/0/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 13:25:10 mail amavis[728]: (00728-02) Passed CLEAN
dlqzjee0pGKq, Hits: -, size: 603, queued_as: BC14C20A5, 151 ms
to=<test-user at example.com>, relay=127.0.0.1[127.0.0.1]:10024,
delay=0.24, delays=0.09/0/0/0.15, dsn=2.0.0, status=sent (250
2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as
BC14C20A5)
to=<test-user at example.com>,
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.35,
delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-861-1504113910-1-3775082477817360626>)
I'll try to catch similar logs for an external email test for comparison.
Here is a log snippet when testing for a vacation response to an
external address. The external domain is not gmail.com (more redaction
practice), but instead a separate kolab 3.4 server I maintain.
Aug 30 14:24:10 mail postfix/smtpd[2198]: connect from
unknown[192.168.70.171]
client=unknown[192.168.70.171]
message-id=<515ef56771f28ed566b1226bda4271ec at gmail.com>
from=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, size=1635,
nrcpt=1 (queue active)
Aug 30 14:24:12 mail postfix/smtpd[2198]: disconnect from
unknown[192.168.70.171]
Aug 30 14:24:12 mail postfix/smtpd[2209]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1], orig_queue_id=B49DA206A,
orig_client=unknown[192.168.70.171]
message-id=<515ef56771f28ed566b1226bda4271ec at gmail.com>
from=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, size=1215,
nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2209]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail amavis[728]: (00728-11) Passed CLEAN
{RelayedInternal}, LOCAL [192.168.70.171]:53110 [97.78.86.98]
<SRS0=c0k5=AA=gmail.com=test-user at example.com> ->
<515ef56771f28ed566b1226bda4271ec at gmail.com>, mail_id: t4STGW5NSFwZ,
Hits: -, size: 1634, queued_as: EDFA620A0, 218 ms
to=<hdokes at example.com>, relay=127.0.0.1[127.0.0.1]:10024,
delay=2.1, delays=1.9/0.01/0/0.22, dsn=2.0.0, status=sent (250 2.0.0
from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as EDFA620A0)
Aug 30 14:24:13 mail postfix/qmgr[4092]: B49DA206A: removed
to=<hdokes at example.com>, relay=127.0.0.1[127.0.0.1]:10026,
delay=0.11, delays=0.09/0.02/0/0, dsn=2.0.0, status=sent (250 Ok)
Aug 30 14:24:13 mail postfix/qmgr[4092]: EDFA620A0: removed
Aug 30 14:24:13 mail postfix/smtpd[2212]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
message-id=<515ef56771f28ed566b1226bda4271ec at gmail.com>
from=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, size=1218,
nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2212]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/pickup[606]: 44AD120A4: uid=104 from=<>
message-id=<cmu-sieve-2197-1504117453-0 at mail.example.com>
Aug 30 14:24:13 mail postfix/qmgr[4092]: 44AD120A4: from=<>,
size=643, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2209]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
message-id=<cmu-sieve-2197-1504117453-0 at mail.example.com>
Aug 30 14:24:13 mail postfix/smtpd[2209]: disconnect from
mail.example.com[127.0.0.1]
Aug 30 14:24:13 mail postfix/qmgr[4092]: 5FDD3206A: from=<>,
size=643, nrcpt=1 (queue active)
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>,
relay=127.0.0.1[127.0.0.1]:10026, delay=0.07, delays=0.07/0/0/0,
dsn=2.0.0, status=sent (250 Ok)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 5FDD3206A: removed
Aug 30 14:24:13 mail amavis[876]: (00876-09) Passed CLEAN
{RelayedInbound}, <> ->
wXheNo2ZCwTA, Hits: -, size: 643, queued_as: 5FDD3206A, 141 ms
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>,
relay=127.0.0.1[127.0.0.1]:10024, delay=0.22, delays=0.07/0/0/0.14,
250 2.0.0 Ok: queued as 5FDD3206A)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 44AD120A4: removed
Aug 30 14:24:13 mail postfix/smtpd[2212]: connect from
mail.example.com[127.0.0.1]
client=mail.example.com[127.0.0.1]
message-id=<cmu-sieve-2197-1504117453-0 at mail.example.com>
example.com!user.hdokes
Aug 30 14:24:13 mail postfix/qmgr[4092]: 74C8020A4: from=<>,
size=766, nrcpt=1 (queue active)
Aug 30 14:24:13 mail postfix/smtpd[2212]: disconnect from
mail.example.com[127.0.0.1]
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, relay=local,
delay=0.16, delays=0.07/0.04/0/0.04, dsn=5.1.1, status=bounced
(unknown user: "srs0=c0k5=aa=gmail.com=test-user")
Aug 30 14:24:13 mail postfix/qmgr[4092]: 74C8020A4: removed
Aug 30 14:24:13 mail lmtpunix[2197]: USAGE hdokes at example.com
user: 0.008000 sys: 0.008000
to=<hdokes at example.com>,
relay=mail.example.com[/var/lib/imap/socket/lmtp], delay=0.55,
delays=0.04/0.04/0/0.47, dsn=2.1.5, status=sent (250 2.1.5 Ok
SESSIONID=<mail.example.com-2197-1504117453-1-201748317146241090>)
Aug 30 14:24:13 mail postfix/qmgr[4092]: 1EE4C20A0: removed
This bit below strikes me as odd...
from=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, size=1635,
nrcpt=1 (queue active)
...as I expected the "from" address to be "test-user at gmail.com". I'm not
sure what is mangling the sender address. Later on it seems the
vacation reply may be attempted, but the reply address is unknown?
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>, relay=local,
delay=0.16, delays=0.07/0.04/0/0.04, dsn=5.1.1, status=bounced
(unknown user: "srs0=c0k5=aa=gmail.com=test-user")
It looks like the vacation reply message was generated. The message with
message-id=<cmu-sieve-2197-1504117453-0 at mail.example.com> looks like the one.
The message queue ID was 44AD120A4, then 5FDD3206A and then 74C8020A4.
"srs0=c0k5=aa=gmail.com=test-user")".
The next step of the investigation should continue to understand why external
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>
example.com is your internal domain?
Liutauras
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.kolab.org/pipermail/users/attachments/20170831/7770faba/attachment.sig>
Thanks for your insight, Liutauras.
Post by Liutauras Adomaitis
example.com is your internal domain?
Yes, example.com in my log snippets is my internal domain. I used
gmail.com to redact the external domain.
Post by Liutauras Adomaitis
The next step of the investigation should continue to understand why external
to=<SRS0=c0k5=AA=gmail.com=test-user at example.com>
I agree.
Is it safe the say that cyrus will never rewrite the email addresses
in this fashion? I wouldn't even know how to turn such a feature on if
cyrus was capable.
Maybe this issue might be with an external utility I've tacked on to the
kolab installation. I do use Scrollout F1 as my spam filter. I'll dig
through the logs and manual for it and see if it's capable of this
behavior.
Homer Dokes
Scrollout F1 was my culprit. Once I disabled SRS [1] in Route > Outbound,
the mangling of external email domains ceased.

Thank you, Liutauras, for your assistance.

Homer Dokes

[1]: https://sourceforge.net/p/scrollout/discussion/1102835/thread/96132e22/
Homer Dokes
2017-08-30 17:54:58 UTC
Permalink
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
After updating Kolab 3.4, through apt-get update, the vacation auto
responder is no longer available for that matter. I should add that
prior to the update the feature never worked for responding to any
outside emails. It only ever worked for email addresses that were local
to the server... .i.e. from the same domain. Prior to the update there
was a pre-defined vacation option in the filters setup. This is no
longer there. Further, any attempt to create a new filter named
vacation and using the "Reply with message" execution on all messages
results in nothing happening. I get no log feedback and no message is
sent back to the sender.
I can confirm that timsieved is running as I can perform 'telnet
localhost sieve' from the email server's command line and I do get a
connection.
When I set up the new filter and save I can see the output of the save
being logged during compiling in the /var/log/roundcubemail/sieve log
file. That's the ONLY time anything ever gets logged related to sieve.
Can anyone speak to how auto replies for vacation purposes are suppose
to work in the Kolab 3.4 environment? Anything I can find online is all
over the map and none of what I have found speaks to the kolab 3.4
environment specifically. Shouldn't I be able see something logged from
Sieve when it's filters are executing? How does Kolab tie Sieve into
cyrus to force the filter?
The server is running Debian 7.0 with the Kolab 3.4 community edition.
This is a huge issue for my clients and may force us to go to some other
email hosting system if we can not overcome it in Kolab. Any assistance
would be greatly appreciated.
From Roundcube point of view the vacation settings item can be enabled in /
// Enables separate management interface for vacation responses (out-of-
office)
// 0 - no separate section (default),
// 1 - add Vacation section,
// 2 - add Vacation section, but hide Filters section
$config['managesieve_vacation'] = 1;
- you should make sure /etc/imapd.conf has necessary extensions enabled with
parameter sieve_extensions
- you should define email addresses emails to which should be responded with
vacation message. Rounudcube Vacation config tool has that in advanced
settings.
- you should make sure vacation responder is enabled as sieve filter. After
creating vacation responder chec <sieve_dir parameter value>/domain/e/
excample.com/t/test^user/ directory. Check if sieve filter is created and if
it is included in the filters main file.
- I'm not sure if you should see anything in the logs, but you should
definetly see a new email generated by IMAP server - a auto-response email.
Cyrus use sendmail parameter in /etc/imapd.conf to call binary to generate new
email.
Liutauras
Hello Liutauras,

Thank you for your response.  I really appreciate it.  Here's what I
have found when checking against your list:

1. $config['managesieve_vacation'] = 1 -Found this set to 0. Once I set it back to 1 the vacation option
appeared in the roundcubemail settings list and could be edited.

2. In the /etc/imapd.conf file I have this which I think is what you were looking for:sieve_extensions: fileinto reject envelope body vacation imapflags
notify include regex subaddress relational copy date index

3. The vacation responder is enabled as a sieve filter and does show up
in the users active sieve script with the latest edits.

4. When users within the email domain send each other email the vacation
auto responder triggers and does send out the message. Here is a snippit
from my syslog showing the response is logged:

  Aug 30 13:25:11 mail postfix/lmtp[867]: C852A20A7:
to=<***@lcent.com>, relay=mail.lcent.com[/var/lib/imap/socket/lmtp],
delay=0.35, delays=0.03/0.04/0/0.27, dsn=2.1.5, status=sent (250 2.1.5
Ok SESSIONID=<mail.lcent.com-861-1504113910-1-3775082477817360626>)

When users receive outside the email domain, then no response is set and
there is no corresponding message in syslog.

Is there a setting that makes a difference for externally originated
emails?  Is there some log we can review to identify if cyrus is
actually employing the sieve filter on external emails?
Homer Dokes
2017-09-19 18:37:28 UTC
Permalink
Greetings,

I have a user who has inadvertently deleted all the emails in a series
of folders.  The emails are still in their physical mailbox directories
on the server and they can be seen grayed out within the roundcubemail
environment and each one can be selected and the contents reviewed.

The issue is that they want to un-delete these emails and I have read
that there is suppose to be a way to do this within roundcubemail by
right clicking on the folder and selecting 'un-delete' however this
option does not exist in either of two different Kolab 3.4
installations.  (I will add that I have done recent (withing last 2
weeks) updates of both services for the Kolab environment.

In addition, when attempting to use the expunge command at the CLI it
does not see any of these emails as being marked for deletion or
available for recovery tho they are clearly residing in their respective
mailbox on the hard drive, can be see (tho grayed out) within
roundcubemail, and can have their contents reviewed.  If I toggle the
'do not show deleted emails' in roundcubemail then these emails
disappear from the roundcubemail display.

The same information I have read suggests that the 'un-delete' option
from the pop up menu's has to be 'enabled' however there is no reference
there or in any search on the internet for enabling this option.

So.... to recount....

emails have been marked for deletion
emails can still be seen in kolab and look to be marked for deletion as
they are grayed out (further substantiated by enabling 'do not show
deleted emails' and having the emails in question disappear)
emails are still in their respective mailbox on the hard drive
emails do not show as marked for deletion when using [su - -s /bin/bash
cyrus -c "/usr/lib/cyrus-imapd/unexpunge -l
user/john.doe/***@example.org"]
roundcubemail option to 'un-delete' in right click pop up menu does not
exist
we can find no where either in config files or through user settings on
roundcubemail to enable the un-delete option.

I also searched the users mailing list and could find nothing on this.

In a word........   help?

As always.... thanks to anyone who can shed light on this.
Timotheus Pokorra
2017-09-20 05:51:48 UTC
Permalink
Hello Homer,
Post by Homer Dokes
The issue is that they want to un-delete these emails and I have read
that there is suppose to be a way to do this within roundcubemail by
right clicking on the folder and selecting 'un-delete' however this
option does not exist in either of two different Kolab 3.4
installations.  (I will add that I have done recent (withing last 2
weeks) updates of both services for the Kolab environment.
I have looked at https://github.com/roundcube/roundcubemail/issues/1635
and was able to recover a deleted email like this in Kolab 3.4:

Just click into the space, where there is usually the star for marking
an email as read or unread.
Once you click there, the email changes from grey to black, and I assume
it is undeleted.

Does this work for you?

It does not work for multiple emails though.
Ok, here is an open request for that functionality:
https://github.com/roundcube/roundcubemail/issues/5133

I looked at cyrus unexpunge as well.
According to
https://serverfault.com/questions/377748/how-deleted-flag-can-be-unset-for-all-mails-in-cyrus-imapd-mailbox
Roundcube sets a silent flag with the name Deleted: -FLAGS.SILENT
(\Deleted)
see also https://www.cyrusimap.org/2.5/imap/admin/sop/deleting.html
and
https://cyrusimap.org/imap/reference/faqs/o-deleted-expired-expunged-purged.html
It seems that the mails marked for deletion are not expunged yet, and
therefore cannot be unexpunged.
We need to unset the Deleted flag somehow different.

I found the imap_undelete function in PHP:
http://php.net/manual/en/function.imap-undelete.php
You could write yourself or ask someone to write a little PHP script
that opens the mailbox, and then calls imap_undelete on each message.

Timotheus

----------------------------------------------------------------
Diese Nachricht wurde versandt mit Webmail von www.tbits.net.
This message was sent using webmail of www.tbits.net.
Lance Charette
2017-09-20 10:49:02 UTC
Permalink
Post by Timotheus Pokorra
Hello Homer,
Post by Homer Dokes
The issue is that they want to un-delete these emails and I have read
that there is suppose to be a way to do this within roundcubemail by
right clicking on the folder and selecting 'un-delete' however this
option does not exist in either of two different Kolab 3.4
installations.  (I will add that I have done recent (withing last 2
weeks) updates of both services for the Kolab environment.
I have looked at https://github.com/roundcube/roundcubemail/issues/1635
Just click into the space, where there is usually the star for marking
an email as read or unread.
Once you click there, the email changes from grey to black, and I
assume it is undeleted.
Does this work for you?
It does not work for multiple emails though.
https://github.com/roundcube/roundcubemail/issues/5133
I looked at cyrus unexpunge as well.
According to
https://serverfault.com/questions/377748/how-deleted-flag-can-be-unset-for-all-mails-in-cyrus-imapd-mailbox
Roundcube sets a silent flag with the name Deleted: -FLAGS.SILENT
(\Deleted)
see also https://www.cyrusimap.org/2.5/imap/admin/sop/deleting.html
and
https://cyrusimap.org/imap/reference/faqs/o-deleted-expired-expunged-purged.html
It seems that the mails marked for deletion are not expunged yet, and
therefore cannot be unexpunged.
We need to unset the Deleted flag somehow different.
http://php.net/manual/en/function.imap-undelete.php
You could write yourself or ask someone to write a little PHP script
that opens the mailbox, and then calls imap_undelete on each message.
Timotheus
----------------------------------------------------------------
Diese Nachricht wurde versandt mit Webmail von www.tbits.net.
This message was sent using webmail of www.tbits.net.
Hi Timotheus,

I too had found the
'https://github.com/roundcube/roundcubemail/issues/5133' page however it
was unclear what the 'messages' icon was that one was suppose to click
on to 'undelete' a deleted message.  If they were speaking to the list
of messages one sees (in the right hand html 'frame') after clicking on
a corresponding folder in the left hand frame of roundcubemail, I have
no icons at all in that area (frame) of the screen.   I clicked on every
icon on the roundcubemail page showing a selected 'deleted' message and
nothing toggled the message back to undeleted.   Even clicking the
'Delete' icon for a selected deleted message did not toggle it back to
undeleted.   Can you shed light as to which icon they were referring to?

Also, in the event I could get this 'toggle' to work, it seems very
counter productive to have to go through each deleted message to reverse
the deleted action particularly if a large number of messages were all
deleted by mistake in one action (which can be done and was in my example).

hdokes
Lance Charette
2017-09-20 11:17:14 UTC
Permalink
Post by Timotheus Pokorra
Hello Homer,
Post by Homer Dokes
The issue is that they want to un-delete these emails and I have read
that there is suppose to be a way to do this within roundcubemail by
right clicking on the folder and selecting 'un-delete' however this
option does not exist in either of two different Kolab 3.4
installations.  (I will add that I have done recent (withing last 2
weeks) updates of both services for the Kolab environment.
I have looked at https://github.com/roundcube/roundcubemail/issues/1635
Just click into the space, where there is usually the star for marking
an email as read or unread.
Once you click there, the email changes from grey to black, and I
assume it is undeleted.
Does this work for you?
It does not work for multiple emails though.
https://github.com/roundcube/roundcubemail/issues/5133
I looked at cyrus unexpunge as well.
According to
https://serverfault.com/questions/377748/how-deleted-flag-can-be-unset-for-all-mails-in-cyrus-imapd-mailbox
Roundcube sets a silent flag with the name Deleted: -FLAGS.SILENT
(\Deleted)
see also https://www.cyrusimap.org/2.5/imap/admin/sop/deleting.html
and
https://cyrusimap.org/imap/reference/faqs/o-deleted-expired-expunged-purged.html
It seems that the mails marked for deletion are not expunged yet, and
therefore cannot be unexpunged.
We need to unset the Deleted flag somehow different.
http://php.net/manual/en/function.imap-undelete.php
You could write yourself or ask someone to write a little PHP script
that opens the mailbox, and then calls imap_undelete on each message.
Timotheus
----------------------------------------------------------------
Diese Nachricht wurde versandt mit Webmail von www.tbits.net.
This message was sent using webmail of www.tbits.net.
Timotheus,

I failed in my last response to acknowledge that I could indeed click in
the space where the star for marking an email as read or unread does
indeed 'un-mark' the email for deletion.  Quite an obscure option in my
opinion but it does work.  It will be a very tedious and time consuming
endeavor however to perform this action on each one of 100's if not
1000's of emails that were mistakenly marked for deletion by the user.

Given the life of roundcubemail and it's lengthy history, I am
astoundingly surprised that this isn't an issue that was already long
since addressed.... that is, the simple inclusion of an 'un-delete'
option in the pop up menu right below the 'delete' option. 
Theoretically the code is already there to make this simple addition as
it it merely toggling the flag that was set for selected messages during
a delete action.

I would settle for such a capability at the command line however this is
a function that should be a natural fit in the roundcubemail app as it
is by far not the first time I have seen emails, even complete folders,
mistakenly marked for deletion.
Lance Charette
2017-09-20 12:11:45 UTC
Permalink
Post by Timotheus Pokorra
Hello Homer,
Post by Homer Dokes
The issue is that they want to un-delete these emails and I have read
that there is suppose to be a way to do this within roundcubemail by
right clicking on the folder and selecting 'un-delete' however this
option does not exist in either of two different Kolab 3.4
installations.  (I will add that I have done recent (withing last 2
weeks) updates of both services for the Kolab environment.
I have looked at https://github.com/roundcube/roundcubemail/issues/1635
Just click into the space, where there is usually the star for marking
an email as read or unread.
Once you click there, the email changes from grey to black, and I
assume it is undeleted.
Does this work for you?
It does not work for multiple emails though.
https://github.com/roundcube/roundcubemail/issues/5133
I looked at cyrus unexpunge as well.
According to
https://serverfault.com/questions/377748/how-deleted-flag-can-be-unset-for-all-mails-in-cyrus-imapd-mailbox
Roundcube sets a silent flag with the name Deleted: -FLAGS.SILENT
(\Deleted)
see also https://www.cyrusimap.org/2.5/imap/admin/sop/deleting.html
and
https://cyrusimap.org/imap/reference/faqs/o-deleted-expired-expunged-purged.html
It seems that the mails marked for deletion are not expunged yet, and
therefore cannot be unexpunged.
We need to unset the Deleted flag somehow different.
http://php.net/manual/en/function.imap-undelete.php
You could write yourself or ask someone to write a little PHP script
that opens the mailbox, and then calls imap_undelete on each message.
Timotheus
----------------------------------------------------------------
Diese Nachricht wurde versandt mit Webmail von www.tbits.net.
This message was sent using webmail of www.tbits.net.
Ok....

I seem to have stumbled on a possible solution, albeit and extremely
obscure solution, to the un-delete issue of multiple messages in
roundcubemail mistakenly marked for deletion by a user.  I have
'discovered' that if you 'select' 'All' emails (in my example a user
mistakenly deleted 1000's of emails in particular folders) and then
click the 'select' box again to get the additional options,  there is an
'invert' option in the drop down menu.  Selecting this 'invert' option
toggled the delete flag on all the messages selected.  In my case, I
selected 3,371 messages that were mistakenly marked for deletion and
then selected 'invert' from the 'Select' drop down menu and all messages
had their delete flag toggled.

This doesn't fully make sense that it would work as you can not select
only some of the messages and than click on the 'invert' option from the
'Select' pull down menu and have it un-delete those selected messages. 
Instead, it simply toggles the selected messages from the ones
originally selected to those not selected and vice versa.  Further, for
the un-mark for deletion to work all the messages in the folder had to
be selected.  Weird?

Now here is the kicker.  It worked one time for all folders that had
deleted messages.  I went through, once I seen it work on one folder,
and performed the same action on all the other messages in other folders
that had been marked to delete and was able to mass un-mark them as
well... BUT.... in an attempt to duplicate the process a 2nd time, i.e.
marking for deletion all the messages in a folder, I was not able to
repeat the un-mark process I just described.  Weirder?

This process is ify at best.  Got it to do it again... but it is hit and
miss on when it will actually toggle the marked for deletion flag.  I
haven't figured out a combination of keystrokes that actually are
consistent for this process.  Can any one else confirm this?

Test:

1. Select mailbox (folder) in roundcubemail that has a dozen or so
emails in it.
2. Select all the messages from this mailbox and mark them for deletions.
3. Now use the 'Select' drop down menu to reselect 'all' the messages
which now should be grayed out as they are marked for deletion (if
roundcubemail is configured to not hide them)
4. From the 'Select' drop down menu and click on 'invert'.

Sometimes it 'un-marks' them and most the times it does not. It's quite
unpredictable.  As it is... I have successfully un-marked all the marked
for delete messages in question (again, 1000's of them through a bulk
'un-mark' process) but can not nail down the sequence that actually is
consistent in making it happen.

My apology if I have made this even more confusing.

Liutauras Adomaitis
2017-09-20 06:03:11 UTC
Permalink
Hi,
Post by Homer Dokes
Greetings,
I have a user who has inadvertently deleted all the emails in a series
of folders. The emails are still in their physical mailbox directories
on the server and they can be seen grayed out within the roundcubemail
environment and each one can be selected and the contents reviewed.
The issue is that they want to un-delete these emails and I have read
that there is suppose to be a way to do this within roundcubemail by
right clicking on the folder and selecting 'un-delete' however this
option does not exist in either of two different Kolab 3.4
installations. (I will add that I have done recent (withing last 2
weeks) updates of both services for the Kolab environment.
In addition, when attempting to use the expunge command at the CLI it
does not see any of these emails as being marked for deletion or
available for recovery tho they are clearly residing in their respective
mailbox on the hard drive, can be see (tho grayed out) within
roundcubemail, and can have their contents reviewed. If I toggle the
'do not show deleted emails' in roundcubemail then these emails
disappear from the roundcubemail display.
The same information I have read suggests that the 'un-delete' option
from the pop up menu's has to be 'enabled' however there is no reference
there or in any search on the internet for enabling this option.
So.... to recount....
emails have been marked for deletion
emails can still be seen in kolab and look to be marked for deletion as
they are grayed out (further substantiated by enabling 'do not show
deleted emails' and having the emails in question disappear)
emails are still in their respective mailbox on the hard drive
emails do not show as marked for deletion when using [su - -s /bin/bash
cyrus -c "/usr/lib/cyrus-imapd/unexpunge -l
roundcubemail option to 'un-delete' in right click pop up menu does not
exist
we can find no where either in config files or through user settings on
roundcubemail to enable the un-delete option.
I also searched the users mailing list and could find nothing on this.
In a word........ help?
As always.... thanks to anyone who can shed light on this.
_______________________________________________
users mailing list
https://lists.kolab.org/mailman/listinfo/users
To undelete ( or should I say un-mark for deletion) the message you should
click on "start" column of that particular message.

There are 2 different things:
- mark message as deleted and
- expunge message

Mark message for deletion is IMAP protocol "thing" and it is just a flag for a
message. IMAP client application (roundcubemail is one of them) can decide how
to show such flaged messages.

Expunge - that is actually remove message from the mailbox. After the message
is expunged it is no longer in the mailbox and user can't unexpunge that
anymore. It is gone.
But, if you configure Cyrus IMAP for delayed expunge (which is default), Cyrus
IMAP will not remove the message file from the disk for some time. So even
though user can't unexpunge the expunged message, sysadmin with access to
Cyrus IMAP server can do that with unexpunge utility provided by Cyrus.

So all your observations are correct and as the messages were marked forl
deletion you should see those messages as still being in the mailbox, but
should not see flaged messages with unexpunge utility, as those messages were
not expunged.

Liutauras
Lance Charette
2017-09-20 11:02:21 UTC
Permalink
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
I have a user who has inadvertently deleted all the emails in a series
of folders. The emails are still in their physical mailbox directories
on the server and they can be seen grayed out within the roundcubemail
environment and each one can be selected and the contents reviewed.
The issue is that they want to un-delete these emails and I have read
that there is suppose to be a way to do this within roundcubemail by
right clicking on the folder and selecting 'un-delete' however this
option does not exist in either of two different Kolab 3.4
installations. (I will add that I have done recent (withing last 2
weeks) updates of both services for the Kolab environment.
In addition, when attempting to use the expunge command at the CLI it
does not see any of these emails as being marked for deletion or
available for recovery tho they are clearly residing in their respective
mailbox on the hard drive, can be see (tho grayed out) within
roundcubemail, and can have their contents reviewed. If I toggle the
'do not show deleted emails' in roundcubemail then these emails
disappear from the roundcubemail display.
The same information I have read suggests that the 'un-delete' option
from the pop up menu's has to be 'enabled' however there is no reference
there or in any search on the internet for enabling this option.
So.... to recount....
emails have been marked for deletion
emails can still be seen in kolab and look to be marked for deletion as
they are grayed out (further substantiated by enabling 'do not show
deleted emails' and having the emails in question disappear)
emails are still in their respective mailbox on the hard drive
emails do not show as marked for deletion when using [su - -s /bin/bash
cyrus -c "/usr/lib/cyrus-imapd/unexpunge -l
roundcubemail option to 'un-delete' in right click pop up menu does not
exist
we can find no where either in config files or through user settings on
roundcubemail to enable the un-delete option.
I also searched the users mailing list and could find nothing on this.
In a word........ help?
As always.... thanks to anyone who can shed light on this.
_______________________________________________
users mailing list
https://lists.kolab.org/mailman/listinfo/users
To undelete ( or should I say un-mark for deletion) the message you should
click on "start" column of that particular message.
- mark message as deleted and
- expunge message
Mark message for deletion is IMAP protocol "thing" and it is just a flag for a
message. IMAP client application (roundcubemail is one of them) can decide how
to show such flaged messages.
Expunge - that is actually remove message from the mailbox. After the message
is expunged it is no longer in the mailbox and user can't unexpunge that
anymore. It is gone.
But, if you configure Cyrus IMAP for delayed expunge (which is default), Cyrus
IMAP will not remove the message file from the disk for some time. So even
though user can't unexpunge the expunged message, sysadmin with access to
Cyrus IMAP server can do that with unexpunge utility provided by Cyrus.
So all your observations are correct and as the messages were marked forl
deletion you should see those messages as still being in the mailbox, but
should not see flaged messages with unexpunge utility, as those messages were
not expunged.
Liutauras
Thank you Liutauras for the reply.

Can you provide additional information as to what the 'start' column of
a message may be?  In the messages list of a given folder in
roundcubemail, I can find no reference to a 'start' column anywhere nor
anything that one could click on to toggle the un-mark for deletion flag
and I have clicked on every icon on the page to attempt such an
action.   Nothing on the screen toggles the 'marked for deletion' item
back to un-marked.  I could find nothing in an internet search that
spoke to this 'start' column either.  Further, isn't it quite counter
productive if one has to perform this process on each individual email
if many emails were mistakenly marked for deletion in one action (which
is what happened here)?  Seems a user should be able to reselect all
those particular emails, right click and have an 'undelete' option right
below the delete option in the pop up menu.  Right now, as the
administrator, I would settle for an ability to force an undelete on all
the emails in a given user mailbox at the command line but that doesn't
look to exist either.

Everything else you referred to above I fully understand.  In this case
both Kolab servers I am working with are set for delayed expunge (which
has been reduced to 14 days from the default 69 days) and the emails in
question that were deleted were done so within the 14 day window.  I am
merely trying to un-mark them for deletion before the end of that 14 day
window but appear to have no means to accomplish this.

Thanks

hdokes
Liutauras Adomaitis
2017-09-20 11:15:49 UTC
Permalink
Post by Lance Charette
Post by Liutauras Adomaitis
Hi,
Post by Homer Dokes
Greetings,
I have a user who has inadvertently deleted all the emails in a series
of folders. The emails are still in their physical mailbox directories
on the server and they can be seen grayed out within the roundcubemail
environment and each one can be selected and the contents reviewed.
The issue is that they want to un-delete these emails and I have read
that there is suppose to be a way to do this within roundcubemail by
right clicking on the folder and selecting 'un-delete' however this
option does not exist in either of two different Kolab 3.4
installations. (I will add that I have done recent (withing last 2
weeks) updates of both services for the Kolab environment.
In addition, when attempting to use the expunge command at the CLI it
does not see any of these emails as being marked for deletion or
available for recovery tho they are clearly residing in their respective
mailbox on the hard drive, can be see (tho grayed out) within
roundcubemail, and can have their contents reviewed. If I toggle the
'do not show deleted emails' in roundcubemail then these emails
disappear from the roundcubemail display.
The same information I have read suggests that the 'un-delete' option
from the pop up menu's has to be 'enabled' however there is no reference
there or in any search on the internet for enabling this option.
So.... to recount....
emails have been marked for deletion
emails can still be seen in kolab and look to be marked for deletion as
they are grayed out (further substantiated by enabling 'do not show
deleted emails' and having the emails in question disappear)
emails are still in their respective mailbox on the hard drive
emails do not show as marked for deletion when using [su - -s /bin/bash
cyrus -c "/usr/lib/cyrus-imapd/unexpunge -l
roundcubemail option to 'un-delete' in right click pop up menu does not
exist
we can find no where either in config files or through user settings on
roundcubemail to enable the un-delete option.
I also searched the users mailing list and could find nothing on this.
In a word........ help?
As always.... thanks to anyone who can shed light on this.
_______________________________________________
users mailing list
https://lists.kolab.org/mailman/listinfo/users
To undelete ( or should I say un-mark for deletion) the message you should
click on "start" column of that particular message.
- mark message as deleted and
- expunge message
Mark message for deletion is IMAP protocol "thing" and it is just a flag
for a message. IMAP client application (roundcubemail is one of them) can
decide how to show such flaged messages.
Expunge - that is actually remove message from the mailbox. After the
message is expunged it is no longer in the mailbox and user can't
unexpunge that anymore. It is gone.
But, if you configure Cyrus IMAP for delayed expunge (which is default),
Cyrus IMAP will not remove the message file from the disk for some time.
So even though user can't unexpunge the expunged message, sysadmin with
access to Cyrus IMAP server can do that with unexpunge utility provided
by Cyrus.
So all your observations are correct and as the messages were marked forl
deletion you should see those messages as still being in the mailbox, but
should not see flaged messages with unexpunge utility, as those messages
were not expunged.
Liutauras
Thank you Liutauras for the reply.
Can you provide additional information as to what the 'start' column of
a message may be? In the messages list of a given folder in
roundcubemail, I can find no reference to a 'start' column anywhere nor
anything that one could click on to toggle the un-mark for deletion flag
and I have clicked on every icon on the page to attempt such an
action. Nothing on the screen toggles the 'marked for deletion' item
back to un-marked. I could find nothing in an internet search that
spoke to this 'start' column either. Further, isn't it quite counter
productive if one has to perform this process on each individual email
if many emails were mistakenly marked for deletion in one action (which
is what happened here)? Seems a user should be able to reselect all
those particular emails, right click and have an 'undelete' option right
below the delete option in the pop up menu. Right now, as the
administrator, I would settle for an ability to force an undelete on all
the emails in a given user mailbox at the command line but that doesn't
look to exist either.
Ooops, I meant "star" column, not "start". There is a column with a star as
header in the list of messages of roundcube.

Liutauras
Loading...