Автоматическая конфигурация Evolution для работы с exchange
Понадобилось сконфигурировать почтовый клиент evolution для того, чтобы он работал как MS outlook — при первом входе пользователя конфигурировался автоматически, на базе данных из AD и сервиса Autodiscovery EWS.
Evolution в Gnome
Вот вариант для Gnome.
В двух словах — с помощью gconftool-2 можно выгрузить текущую конфигурацию evolution.
Скорректировать ее для нового пользователя и залить в профиль.
https://wiki.gnome.org/Apps/Evolution/GConfTools
Evolution в KDE
В KDE нужно создать файлики evolution source (~/.config/evolution/source), в которых лежит описание почтовой конфигурации.
https://wiki.gnome.org/Apps/Evolution/ESourceFileFormat
Вот скрипт, который берет из AD аттрибут пользователя mail, выполняет autodiscovery и заполняет файлики evolution source.
Также скрипт автоматически создает подпись, в которой можно использовать аттрибуты AD. Этот скрипт можно поместить в автозагрузку в дефолтный профиль (например в директорию /etc/skel/.kde/Autostart ) и тогда evolution будет автоматически конфигурировать почту на базе данных из AD, совсем как Outlook.
Для работы скрипта необходимо, чтобы системы была корректно введена домен с помощью samba+winbind. Этот скрипт создавался как часть скрипта, конфигурирующего систему на базе Ubuntu для работы в домене — Ubuntu Setup Script
#! /bin/bash export GIO_USE_NETWORK_MONITOR=base DOMAINNAME=`hostname -d` ######################################################################## ### Check if Evolution EWS source files already exist. If exist - exit 0 ####################################################################### for f in ~/.config/evolution/sources/*$HOSTNAME.source; do [ -e "$f" ] && exit 0 ; break; done ########################################## ## Check if connected to AD ########################################## if ! wbinfo -P; then echo "NETLOGON test failed" >> ~/.ews_setup.log else echo "NETLOGON test OK" >> ~/.ews_setup.log CURRENT_DC=`wbinfo -P | awk '' | awk -F "\"" ''` BASEDN=`echo $CURRENT_DC | sed s/^[^.]*.//g | sed s/"\."/,dc=/g | sed s/^/dc=/` FULL_NAME=`ldapsearch -h $CURRENT_DC -b "$BASEDN" "sAMAccountName=$USER" | grep displayName: | awk '' | base64 -d` MAIL=`ldapsearch -h $CURRENT_DC -b "$BASEDN" "sAMAccountName=$USER" | grep mail: | awk ''` NAME_PREFIX=`date +%s.%N | cut -c 1-16` ############################################################################################### ### MS Exchange autodiscovery #### https://github.com/sys4/automx/blob/master/src/automx-test #### http://stackoverflow.com/questions/38509837/when-using-negotiate-with-curl-is-a-keytab-file-required #### Joined AD with samba/winbind and have package gss-ntlmssp ############################################################################################### AUTOD_URL="https://autodiscover.`echo $MAIL | sed 's/^.*@//'`"/autodiscover/autodiscover.xml REQUEST=$(catEOF ) bash -c "curl -k -d '$REQUEST' --header \"Content-Type: text/xml\" -s --negotiate -u : $AUTOD_URL" > ~/.autodiscover.xml #bash -c "curl -v -k -d '$REQUEST' --header \"Content-Type: text/xml\" --ntlm --user username:userpassword $AUTOD_URL" > ~/.autodiscover.xml OABUrl=$(cat ~/.autodiscover.xml | grep -m 1 OABUrl | awk -F '[<>]' '< print $3 >')oab.xml EwsUrl=$(cat ~/.autodiscover.xml | grep -m 1 EwsUrl | awk -F '[<>]' '< print $3 >') EwsHost=$(echo $EwsUrl | awk -F '/' '< print $3 >') rm ~/.autodiscover.xml echo CURRENT_DC - $CURRENT_DC > ~/.ews_setup.log echo FULL_NAME - $FULL_NAME >> ~/.ews_setup.log echo BASEDN - $BASEDN >> ~/.ews_setup.log echo MAIL - $MAIL >> ~/.ews_setup.log echo DOMAINNAME - $DOMAINNAME >> ~/.ews_setup.log echo OABUrl - $OABUrl >> ~/.ews_setup.log echo EwsUrl - $EwsUrl >> ~/.ews_setup.log echo EwsHost - $EwsHost >> ~/.ews_setup.log ################################################################ ### Check URLs format ################################################################ echo $OABUrl | grep -E '(https|http)://(([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&|=|+|$|,|/|\?|%|#|\[|\]])*/(oab|OAB)([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&|=|+|$|,|/|\?|%|#|\[|\]])*/oab.xml)' OAB_URL_Check=$? echo $EwsUrl | grep -E '(https|http)://(([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&|=|+|$|,|/|\?|%|#|\[|\]])*/(ews|EWS)([[:alnum:]]|-|_|\.|~|!|\*|;|:|@|&|=|+|$|,|/|\?|%|#|\[|\]])*/exchange.asmx)' EWS_URL_Check=$? if [ $OAB_URL_Check != 0 ] || [ $EWS_URL_Check != 0 ]; then echo "OAB and EWS URLs check failed. Exit. " >> ~/.ews_setup.log else echo "OAB and EWS URLs check OK" >> ~/.ews_setup.log ###################################################################### ### CleaningUp and creating evolution source files ###################################################################### killall evolution-source-registry rm -Rf ~/.config/evolution/sources mkdir --parents ~/.config/evolution/sources ##################################################################################### cat ~/.config/evolution/sources/$NAME_PREFIX.1@$HOSTNAME.source [Data Source] DisplayName=$MAIL Enabled=true Parent= [Offline] StaySynchronized=true [Authentication] Host=$EwsHost Method=GSSAPI Port=443 ProxyUid=system-proxy RememberPassword=true User=$USER CredentialName= [Collection] BackendName=ews CalendarEnabled=true ContactsEnabled=true Identity=$USER MailEnabled=true [Security] Method=none [Ews Backend] FilterInbox=true StoreChangesInterval=3 CheckAll=true ListenNotifications=true Email=$MAIL FilterJunk=true FilterJunkInbox=false FoldersInitialized=true GalUid=$NAME_PREFIX.0@$HOSTNAME Hosturl=$EwsUrl Oaburl=$OABUrl OabOffline=true OalSelected= Timeout=300 UseImpersonation=false ImpersonateUser= EOF ###################################################################### cat ~/.config/evolution/sources/$NAME_PREFIX.0@$HOSTNAME.source [Data Source] DisplayName=$MAIL Enabled=true Parent=$NAME_PREFIX.1@$HOSTNAME [Mail Composition] Bcc= Cc= DraftsFolder=folder://$NAME_PREFIX.3%40$HOSTNAME/%d0%a7%d0%b5%d1%80%d0%bd%d0%be%d0%b2%d0%b8%d0%ba%d0%b8 SignImip=true TemplatesFolder=folder://local/Templates [Mail Identity] Address=$MAIL Name=$FULL_NAME Organization= ReplyTo= SignatureUid=$NAME_PREFIX.33@$HOSTNAME [Mail Submission] SentFolder=folder://$NAME_PREFIX.3%40$HOSTNAME/%d0%9e%d1%82%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5 TransportUid=$NAME_PREFIX.13@$HOSTNAME RepliesToOriginFolder=false EOF ###################################################################### cat ~/.config/evolution/sources/$NAME_PREFIX.3@$HOSTNAME.source [Data Source] DisplayName=$MAIL Enabled=true Parent=$NAME_PREFIX.1@$HOSTNAME [Refresh] Enabled=true IntervalMinutes=3 [Mail Account] BackendName=ews IdentityUid=$NAME_PREFIX.0@$HOSTNAME ArchiveFolder= EOF ############################################################################### cat ~/.config/evolution/sources/$NAME_PREFIX.13@$HOSTNAME.source [Data Source] DisplayName=$MAIL Enabled=true Parent=$NAME_PREFIX.1@$HOSTNAME [Mail Transport] BackendName=ews EOF ################################################################################ cat ~/.config/evolution/sources/local.source # Special built-in mail store. [Data Source] DisplayName=On This Computer Enabled=false Parent= [Mail Account] BackendName=maildir IdentityUid=self ArchiveFolder= [Maildir Backend] FilterInbox=true Path=$HOME/.local/share/evolution/mail/local EOF ######################################################################## cat ~/.config/evolution/sources/vfolder.source # Special built-in mail store. [Data Source] DisplayName=Search Folders Enabled=false Parent= [Mail Account] BackendName=vfolder IdentityUid=self ArchiveFolder= [Vfolder Backend] FilterInbox=true EOF ########################################################################## mkdir --parents ~/.config/evolution/mail/ cat ~/.config/evolution/mail/state.ini [GlobalFolder] GroupByThreads=false PreviewVisible=true [Store $NAME_PREFIX.3@$HOSTNAME] Expanded=true [Search Bar] SearchScope=mail-scope-current-folder SearchOption=mail-search-subject-or-addresses-contain [Folder Tree] Selected=folder://$NAME_PREFIX.3%40$HOSTNAME/%d0%92%d1%85%d0%be%d0%b4%d1%8f%d1%89%d0%b8%d0%b5 [Folder folder://$NAME_PREFIX.3%40$HOSTNAME/%d0%92%d1%85%d0%be%d0%b4%d1%8f%d1%89%d0%b8%d0%b5] GroupByThreads=false PreviewVisible=true Expanded=true EOF ###################################################################### ### Create Signature cat ~/.config/evolution/sources/$NAME_PREFIX.33@$HOSTNAME.source [Data Source] DisplayName=$MAIL Enabled=true Parent= [Mail Signature] MimeType=text/html EOF mkdir --parents ~/.config/evolution/signatures/ cat ~/.config/evolution/signatures/$NAME_PREFIX.33@$HOSTNAME http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a С уважением,EOF fi fi
$FULL_NAME
Даем людям уверенность и надежность!
www.sberbank.ru
Почтовый клиент Linux Evolution Exchange.
Получение почтовых сообщений в корпоративной среде смешанного типа, Windows — Linux, неизменно сталкивается с вопросом выбора почтовой программы. Мы уже рассказывали о возможностях шлюза davmail — Thunderbird и клиента Evolution, как самодостаточной программы. Конечно, программа Evolution может успешно действовать в паре, evolution — davmail. Но в этом нет необходимости т.к для взаимодействия evolution exchange, имеются свои, встроенные возможности. В серии статей, посвящённых Evolution, мы продолжим рассказ о особенностях настроек и работе почтовой программы Evolution. Проект Evolution, входит в The GNOME Foundation под лицензией GNU СПО.
- Стенд:
- Windows Server 2012 R2, имя hyper; ip-10.0.2.18
- MS Exchange 2010 SP3
- AD, имя kab.ivs
- Учётная запись в AD, имя: user\kab.ivs
- Альт Рабочая станция К, имя: lin-kde, IP=10.0.2.33
- Пользователь Linux, имя: user
Подготовка.
Почтовый клиент Evolution, по умолчанию, отсутствует на рабочих станциях, выполним установку.
# apt-get update # apt-get install evolution # apt-get install evolution-data # apt-get install evolution-data-server # apt-get install evolution-ews
Обратите внимание на пакет evolution — ews, именно этот модуль отвечает за подключение к MS Exchange. На рабочей станциии KDE, значок Evolution, находится; приложения\офис. На рабочих станциях других окружений, выводим кнопку Evolution на рабочий стол.
GUI — графический интерфейс пользователя.
Для проверки настроек MS Exchange, читайте здесь
Подключение к п\я Exchange.
Подробно, пошаговую информацию конфигурации Evolution смотрите здесь, мы же остановимся на окне «Получения почты». Используя возможности галереи снимков, покажем главные особенности настроек Evolution, при подключении к п\я Exchange.
Запись MS Exchange должна определятся при запросе DNS
Пояснения к галерее.
- Вид2 — указываем URL Exchange, авторизациябазовая
- Вид3 — нажимаем «Получить URL», получаем сертификат Exchange.
- Вид4 — авторизация в п\я Exchange
- Вид5 — итоговое окно настроек Evolution
При подключении к п\я Exchange, потребуется добавление пароля Evolution в связку ключей.
Для проверки работы Evolution, отправьте сообщение на свой e-mail.
Заключение.
В статье были подробно рассмотрены особенности настройки почтового клиента Evolutin, на этапе «Получения почты». Дальнейшая работа с почтовой программы не представляет трудности. Основные проблемы при использование Evolution, могут быть связанны с работой сервера MS Exchange. Некоторые администраторы MS Windows, не достаточно ответственно подходят к работе протокола OWA, считая его второстепенной службой. При возникновении трудностей с приёмом и отправкой сообщений Evolution, необходимо проверить работу OWA, выполнив для этого следующие действия. Запустите браузер и введите адрес сервера MS Exchange; https://hyper.kab.ivs/owa — адрес стенда, пробуйте войти в свою учётную запись. В следующей статьях расскажем, как подключить адресную книгу MS Exchange и календарь к Evolution. Если Вас заинтересовала тема взаимодействия почтового клиента Evolutin -MS Exchange пишите на e-mail в контактах.