Как в zimbra найти письмо

My goal is to search my huge webmail with more then 2000 email with attachments.
It seems that Zimbra webmail search doesnt give results in GUI mode. Sometimes it works but shows only unread mail.

In programatic mode I didnt have luck.

My question is how to perform search in Zimbra webmail (Show some example)

My second question is if there is any material about zimbra webmail search (but not their official materials because they are not usefull to me)

asked Sep 22, 2014 at 14:48

user1406647's user avatar

Well… I don’t quite understand, what your problem exactly is. I find it quite easy to search in Zimbra. Just enter a term and Zimbra searches in the subject, mail text and addresses.

You can add wildcards (*) to search for partial words.

Besides this, you can add tags to search for specific things. For example, to search for all mails, that Mike sent to you, you’d search for “from:mike”. (These tags are all quite well documented in Zimbra’s online help)

The same query language is used programmatically (for example in SearchRequest-Api calls).

answered Oct 29, 2014 at 21:25

Dennis Plöger's user avatar

4

Основные команды

Вообще все выполняется от пользователя zimbra!!!
т.е. сперва всегда su – zimbra

Запуск/перезапуск

zmcontrol start|stop|restart|status

Перезапуск postfix (например, если правили конфиг)

или

Информация о почтовом ящике

zmprov getMailboxInfo sharre@diamondplatinumrealty.com

Переиндексировать ящик

zmprov reIndexMailbox   valynkin .pavel@propertyminder.com start|status|stop

Посчитать количество писем в Inbox (getAllFolders)

zmmailbox -z -m system@propertyminder.com gaf | grep Inbox | awk '{print $4}'

Если в логах сообщения со словами NO_SUCH_BLOB

то это значит, что произошло рассогласование между метаданными ящика и физическими файлами с письмами. Ну т.е. в метаданных есть ссылки на письма, а по факту файлов уже нет.
Устраняется путем перестроения метаданных на основе существующих файлов с письмами в ящике.

Для того, что бы найти ящики, у которых проблема:

grep -B2 NO_SUCH_BLOB /opt/zimbra/log/mailbox.lo* |grep mailbox= |sed -r 's/.*mailbox=([0-9]*).*$/1/' |sort -u

Пофиксить:

zmblobchk --mailboxes 6919 --export-dir /tmp --missing-blob-delete-item start|status|stop
zmblobchk --mailboxes 4600 --export-dir /tmp/3 --missing-blob-delete-item --unexpected-blob-list /tmp/3/blob-list start

Работа с аккаунтом galsync

Информация об источниках данных (getDataSources)

zmprov gds galsync@vpstest.ru

Удалить аккаунт galsync

zmgsautil deleteAccount -a galsync@vpstest.ru

Узнать аккаунт (user account) по номеру ящика (MailboxId)

su - zimbra
mysql
use zimbra;
select comment from mailbox where id=257;

+----------------------+
| comment |
+----------------------+
| user@domain.com |
+----------------------+
1 row in set (0.00 sec)

Апдейт правил spamassasin

Очистка ящиков от удаленных писем

Зимбра производит операцию purge_mailbox только для тех ящиков, которые находятся в момент выполнения операции в памяти (т.е. к ним кто то законнечен).
По этому для редко используемых ящиков очистка не срабатвает.
В ручном режиме:

Получаем ZimbraID ящика

zmprov -l ga letterbackup@propertyminder.com zimbraId

Загружаем ящик в память выполнив пустую операцию

zmmailbox -z -m letterbackup@propertyminder.com noOp

Очищаем ящик

zmsoap -v -z PurgeMessagesRequest/mbox @id=1ab5cf73-b393-4ae0-9723-05ee92131980

вот так:

[zimbra@mail ~]$ zmprov -l ga letterbackup@propertyminder.com zimbraId
    # name letterbackup@propertyminder.com
    zimbraId: 1ab5cf73-b393-4ae0-9723-05ee92131980

[zimbra@mail ~]$ zmmailbox -z -m letterbackup@propertyminder.com noOp
[zimbra@mail ~]$ zmsoap -v -z PurgeMessagesRequest/mbox @id=1ab5cf73-b393-4ae0-9723-05ee92131980
   <PurgeMessagesRequest xmlns="urn:zimbraAdmin">
      <mbox id="1ab5cf73-b393-4ae0-9723-05ee92131980"/>
    </PurgeMessagesRequest>
    <PurgeMessagesResponse xmlns="urn:zimbraAdmin">
      <mbox id="1ab5cf73-b393-4ae0-9723-05ee92131980" mbxid="6867" s="3030290"/>
    </PurgeMessagesResponse>

Можно пройтись по всем ящикам вот таким скриптом purge-all.sh:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
# purge-all.sh
# run as user zimbra
#   $ ./purge-all.sh
# or crontab monthly/weekly
#   0 1 1 * * /usr/local/bin/purge-all.sh

# config
TMPDIR="/var/tmp"
LOGDIR="/opt/zimbra/log"
SLEEP=10

if [ "$USER" != "zimbra" ]; then
  echo "Error: Must be run as user zimbra"
  exit 1
fi

DATE="`date '+%Y%m%d-%H%M%S'`"
exec >> $LOGDIR/purgeall-$DATE.log

echo "`date`: START $0"
zmprov -l gaa -s `zmhostname` > $TMPDIR/purgeall-list.out

for MYUSER in `cat $TMPDIR/purgeall-list.out`
do
  echo "`date`: Starting user: $MYUSER"
  ACCOUNT_ID="`zmprov -l ga $MYUSER zimbraId | awk '/^zimbraId:/ {print $2}'`"
  if [ -n "$ACCOUNT_ID" ]; then
    zmmailbox -z -m $MYUSER noOp && 
      zmsoap -v -z PurgeMessagesRequest/mbox @id=$ACCOUNT_ID
    if [ $? = 0 ]; then
      echo "`date`: Finished user: $MYUSER"
    else
      echo "`date`: Error: $MYUSER"
    fi
  fi
  sleep $SLEEP
done

echo "`date`: END $0"
exit 0

ENJOY!

  • О портале
  • Новости
  • Форум
  • Присоединиться

Главная

  • Alfresco
    • Что такое Alfresco?
    • Все материалы
    • Форум Alfresco
    • Новости Alfresco
    • Люди и компании
  • KVM
    • Что такое KVM?
    • Все материалы
    • Форум KVM
    • Новости KVM
    • Люди и компании
  • Pentaho
    • Все материалы
    • Форум Pentaho
    • Люди и компании
  • Zabbix
  • Zimbra
    • Что такое Zimbra?
    • Все материалы
    • Форум Zimbra
    • Новости Zimbra
    • Люди и компании
  • и другие

Сквозной поиск по всем ящикам пользователей

Гость, 12/09/2011 – 10:34

Подскажите, можно ли как то осуществить поиск по всем ящикам пользователей письма с текстом например “конфедициально” или “зарплата”. Т.е. в целях поиска пользователей рассылающих информацию. Или может есть какой то фильтр, в котором указываются ключевые слова и если такое письмо попадает, то оно идет не адресату а на указанный ящик, например security@фирма.ру


0

1

Приветствую!
Что-то пошло не так и моему пользователю перестали приходить письма от одного из контрагентов.
В логах без ошибок, только предупреждения типа:

Oct 30 17:34:15 mail postfix/smtpd[19265]: connect from mail.domain.ru[ip]
Oct 30 17:34:15 mail postfix/smtpd[19265]: NOQUEUE: filter: RCPT from mail.domain.ru[ip]: <user@DOMAIN.RU>: Sender address triggers FILTER smtp-amavis:[127.0.0.1]:10026; from=<user@DOMAIN.RU> to=<my-user@my-domain.ru> proto=ESMTP helo=<mail.domain.ru>
Oct 30 17:34:15 mail postfix/smtpd[19265]: NOQUEUE: filter: RCPT from mail.domain.ru[ip]: <user@DOMAIN.RU>: Sender address triggers FILTER smtp-amavis:[127.0.0.1]:10024; from=<user@DOMAIN.RU> to=<my-user@my-domain.ru> proto=ESMTP helo=<mail.domain.ru>
Oct 30 17:34:17 mail postfix/smtpd[19265]: 0A4DC5D8064D: client=mail.domain.ru[ip]
Oct 30 17:34:29 mail postfix/cleanup[5213]: 0A4DC5D8064D: message-id=<e1d6c4a8d583cc551885c02fc7212e2b@mail.domain.ru>
Oct 30 17:34:30 mail postfix/smtpd[19265]: disconnect from mail.domain.ru[ip] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Oct 30 17:39:41 mail postfix/cleanup[18839]: B965B5D806AC: message-id=<e1d6c4a8d583cc551885c02fc7212e2b@mail.domain.ru>
Oct 30 17:39:41 mail amavis[6818]: (06818-04-2) Passed CLEAN {RelayedInbound}, [77.241.253.50]:36862 [77.241.253.50] <user@DOMAIN.RU> -> <my-user@my-domain.ru>, Queue-ID: 0A4DC5D8064D, Message-ID: <e1d6c4a8d583cc551885c02fc7212e2b@mail.domain.ru>, mail_id: hRxz_R13vD7D, Hits: -10, size: 50872, queued_as: B965B5D806AC, 218 ms

На той стороне утверждают, что письма уходят, ошибки не возвращаются.
Письма с других доменов пользователю доставляются. Домен отправителя в белом списке. В настройках ящика никаких фильтров нет. И письма нигде нет.
Как и где можно найти письмо, хотя бы по message-id и доставить его пользователю?
И в чем вообще может быть причина такого поведения зимбры?

На чтение 3 мин Просмотров 519 Опубликовано 14 августа, 2021 Обновлено 14 августа, 2021

Запуск/перезапуск

zmcontrol start|stop|restart|status

Перезапуск postfix (например, если правили конфиг)

zmmtactl reload

или

postfix reload

Информация о почтовом ящике

zmprov getMailboxInfo sharre@diamondplatinumrealty.com

Переиндексировать ящик

zmprov reIndexMailbox   valynkin .pavel@propertyminder.com start|status|stop

Посчитать количество писем в Inbox (getAllFolders)

zmmailbox -z -m system@propertyminder.com gaf | grep Inbox | awk '{print $4}'

Если в логах сообщения со словами NO_SUCH_BLOB

то это значит, что произошло рассогласование между метаданными ящика и физическими файлами с письмами. Ну т.е. в метаданных есть ссылки на письма, а по факту файлов уже нет. Устраняется путем перестроения метаданных на основе существующих файлов с письмами в ящике.

Для того, что бы найти ящики, у которых проблема:

grep -B2 NO_SUCH_BLOB /opt/zimbra/log/mailbox.lo* |grep mailbox= |sed -r 's/.*mailbox=([0-9]*).*$/1/' |sort -u

Пофиксить:

zmblobchk --mailboxes 6919 --export-dir /tmp --missing-blob-delete-item start|status|stop
zmblobchk --mailboxes 4600 --export-dir /tmp/3 --missing-blob-delete-item --unexpected-blob-list /tmp/3/blob-list start

Работа с аккаунтом galsync

Информация об источниках данных (getDataSources)

zmprov gds galsync@vpstest.ru

Удалить аккаунт galsync

zmgsautil deleteAccount -a galsync@vpstest.ru

Узнать аккаунт (user account) по номеру ящика (MailboxId)

su - zimbra
mysql
use zimbra;
select comment from mailbox where id=257;

+----------------------+
| comment |
+----------------------+
| user@domain.com |
+----------------------+
1 row in set (0.00 sec)

Апдейт правил spamassasin

zimbramon /bin/sa-update

Очистка ящиков от удаленных писем

Зимбра производит операцию purge_mailbox только для тех ящиков, которые находятся в момент выполнения операции в памяти (т.е. к ним кто то законнечен). По этому для редко используемых ящиков очистка не срабатвает. В ручном режиме:

Получаем ZimbraID ящика

zmprov -l ga letterbackup@propertyminder.com zimbraId

Загружаем ящик в память выполнив пустую операцию

zmmailbox -z -m letterbackup@propertyminder.com noOp

Очищаем ящик

zmsoap -v -z PurgeMessagesRequest/mbox @id=1ab5cf73-b393-4ae0-9723-05ee92131980

вот так:

[zimbra@mail ~]$ zmprov -l ga letterbackup@propertyminder.com zimbraId
    # name letterbackup@propertyminder.com
    zimbraId: 1ab5cf73-b393-4ae0-9723-05ee92131980

[zimbra@mail ~]$ zmmailbox -z -m letterbackup@propertyminder.com noOp
[zimbra@mail ~]$ zmsoap -v -z PurgeMessagesRequest/mbox @id=1ab5cf73-b393-4ae0-9723-05ee92131980
   <PurgeMessagesRequest xmlns="urn:zimbraAdmin">
      <mbox id="1ab5cf73-b393-4ae0-9723-05ee92131980"/>
    </PurgeMessagesRequest>
    <PurgeMessagesResponse xmlns="urn:zimbraAdmin">
      <mbox id="1ab5cf73-b393-4ae0-9723-05ee92131980" mbxid="6867" s="3030290"/>
    </PurgeMessagesResponse>

Можно пройтись по всем ящикам вот таким скриптом purge-all.sh:


#!/bin/bash
# purge-all.sh
# run as user zimbra
#   $ ./purge-all.sh
# or crontab monthly/weekly
#   0 1 1 * * /usr/local/bin/purge-all.sh

# config
TMPDIR="/var/tmp"
LOGDIR="/opt/zimbra/log"
SLEEP=10

if [ "$USER" != "zimbra" ]; then
  echo "Error: Must be run as user zimbra"
  exit 1
fi

DATE="`date '+%Y%m%d-%H%M%S'`"
exec >> $LOGDIR/purgeall-$DATE.log

echo "`date`: START $0"
zmprov -l gaa -s `zmhostname` > $TMPDIR/purgeall-list.out

for MYUSER in `cat $TMPDIR/purgeall-list.out`
do
  echo "`date`: Starting user: $MYUSER"
  ACCOUNT_ID="`zmprov -l ga $MYUSER zimbraId | awk '/^zimbraId:/ {print $2}'`"
  if [ -n "$ACCOUNT_ID" ]; then
    zmmailbox -z -m $MYUSER noOp && 
      zmsoap -v -z PurgeMessagesRequest/mbox @id=$ACCOUNT_ID
    if [ $? = 0 ]; then
      echo "`date`: Finished user: $MYUSER"
    else
      echo "`date`: Error: $MYUSER"
    fi
  fi
  sleep $SLEEP
done

echo "`date`: END $0"
exit 0

Все

  • Спецзаказ перевозка цветов в Верхних Кигах Служба доставки среди цветов.

    verhnie-kigi.sredi-cvetov.ru

Добавить комментарий