LINUX.ORG.RU

sed для избавления от устаревших адресов thunderbird

 


0

1

Здравствуйте. В организации используем thunderbird, который берет при отправке письма берет почту и имя пользователя из АД. Так, например, manager.565@domain.ru это Иванов Иван. Пытаюсь отправить, пишу «Иванов», thunderbird подбирает, превращает в manager.565@domain.ru. Все хорошо.

Но при этом он еще и записывает почту в свою книгу «собранные адреса». Вроде удобный механизм - потом по имени можно находить всех, кому когда-то писал. Но если вдруг, Иванов Иван увольняется, а потом приходит либо однофамилец, либо он же, но уже в другой отдел, с другой почтой, то происходит путаница. Thunderberd находит Иванова и в сервере каталогов и в «собраных адресах». И почты разные. Какую он подставит - ему одному ведомо. Выход - чистить «собраные адреса» от неактуальных записей. Либо вручную, на что пользователи конечно забивают, либо как-то автоматизировать. Меня бы вполне устроил вариант, чтобы он в «собраные адреса» вообще не сохранял адрес@domain.ru. Но он так, похоже, не умеет.

Все собраные он хранит в файлике history.mab. В виде

<куча символов... (80=0)(82=1)(C9C=276)(83=manager.123@domain.ru) ... куча символов>

Если вручную удалить «manager.123@domain.ru», то в собраных адресах имя и фамилия остаются, почта удаляется, а при написании письма такой пользователь игнорируется. Собственно, что и хотелось.

Как можно с помощью sed реализовать такой алгоритм: ищем «domain.ru», ищем первый символ «=» ПЕРЕД найденным и удаляем все между ними?

Вот так вот sed -i 's/=.*@domain.ru//' history.mab удаляет логично с ПЕРВОГО «=» на строке до «@domain.ru».


Меня бы вполне устроил вариант, чтобы он в «собраные адреса» вообще не сохранял адрес@domain.ru. Но он так, похоже, не умеет.

history.mab содержит/хранит что-то важное, от чего избавляться не нужно? Если нет, то каждому прописать в его пользовательский crontab:

# если vixie-cron и компы не работают 24/7 (включаются в начале рабочего дня):
@reboot /bin/rm $HOME/.../thunderbird/.../history.mab
# иначе (время заменить на начало смены плюс полчаса, чтобы уж наверняка):
0 8 * * * /bin/rm $HOME/.../thunderbird/.../history.mab

Выглядит костыльно, но работает безотказно (используется не с thunderbird, но юзкейс примерно тот же — подчистка за юзерами в автоматическом режиме).

mord0d ★★★★★
()

Как вариант - вообще не сохранять введенные адреса. Можно поиграться с настройками в настройки—сервис— адресация (версия thunderbird 60, в 68 где это может быть не знаю)

Kazun3500
()
Ответ на: комментарий от mord0d

Нет, совсем его убивать нельзя, я бы тогда просто в настройках thunderbird выключил нафиг сбор адресов да и всё. Большая часть информации - адреса клиентов, это удобно. Вычистить мне надо только свои, локальные адреса.

stabst
() автор топика
Ответ на: комментарий от stabst

Нет, совсем его убивать нельзя, я бы тогда просто в настройках thunderbird выключил нафиг сбор адресов да и всё.

Вычистить мне надо только свои, локальные адреса.

Понял.

s/=[A-Za-z0-9\._-]+@domain.ru/=/g?

mord0d ★★★★★
()
Ответ на: комментарий от mord0d
[A-Za-z0-9\._-]+@domain.ru 

что-то не отрабатывает, не находит регулярку. Но принцип понятен, спасибо. Так и сделаю.

stabst
() автор топика
Ответ на: комментарий от stabst

А ты не забыл, что для использования «+» нужно «sed -r»?

ABW ★★★★★
()
Ответ на: комментарий от stabst

что-то не отрабатывает, не находит регулярку

+\+. Я уже не помню особенностей GNU sed.

Да и вообще, надо смотреть, чтобы жадностью лишнего не сожрало, попортит весь файл.

mord0d ★★★★★
()
sed -r 's/=[^=]+@domain\.ru/=/g'

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.