Latest revision |
Your text |
Line 1: |
Line 1: |
− | '''MySMTP-t''' - легковесный шлюз Jabber-SMTP (транспорт в терминологии jabber), который осуществляет прозрачное преобразование Jabber-трафика в SMTP и обратно. Транспорт '''MySMTP-t''' написан на [[Perl]]. | + | '''MySMTP-t''' - легковесный шлюз Jabber-SMTP, который осуществляет прозрачное преобразование Jabber трафика в SMTP и обратно. |
| | | |
− | Целевая аудитория документа: администраторы серверов Jabber. | + | Целевая аудитория: администраторы Jabber серверов. |
| | | |
| ---- | | ---- |
| | | |
− | == Установка MySMTP-t ==
| |
| Скачать все необходимые файлы можно из SVN svn://mytlt.ru/mysmtp-t | | Скачать все необходимые файлы можно из SVN svn://mytlt.ru/mysmtp-t |
− | На данный момент (май 2008) проект насчитывает четыре файла: | + | На данный момент проект насчитывает три файла: |
− | ; smtp : отвечает за регистрацию пользователей, отправку сообщений из Jabber в SMTP, работает в режиме демона;
| + | smtp -- отвечает за регистрацию пользователей, отправку сообщений из Jabber в SMTP, работает в режиме демона; |
− | ; smtpbot : отвечает за приём сообщений от почтового сервера и отправку их в Jabber, отправляет сообщения на авторизацию;
| + | smtpbot -- отвечает за приём сообщений от почтового сервера и отправку их в Jabber, отправляет сообщения на авторизацию; |
− | ; smtp.ini : конфигурационный файл;
| + | smtp.ini -- конфигурационный файл |
− | ; tidy.cfg : конфигурационный файл Tidy.
| + | |
| | | |
| В процессе использования будет создан ещё файл smtp.db, который содержит информацию о пользователях. | | В процессе использования будет создан ещё файл smtp.db, который содержит информацию о пользователях. |
| | | |
| Для работы потребуется: | | Для работы потребуется: |
− | * [[Perl|Perl5]] (проверялось на Perl-5.8.8) и модули к нему:
| + | Perl5 (проверялось на Perl-5.8.8)модули: |
− | *# внешние:
| + | Net::Jabber (и Net::XMPP) |
− | *#* DBI;
| + | MIME::Parser |
− | *#* DBD::SQLite;
| + | MIME::Base64 |
− | *#* HTML::Tidy;
| + | MIME::QuotedPrint |
− | *#* HTTP::Request;
| + | Mail::Sendmail |
− | *#* [[Net::Jabber]] (и [[Net::XMPP]]);
| + | Getopt::Long |
− | *#* Mail::Sendmail;
| + | DBD::SQLite |
− | *#* MIME::Parser;
| + | MTA Postfix |
− | *#* MIME::Base64;
| + | и собственно сервер Jabber |
− | *#* MIME::QuotedPrint;
| + | |
− | *# стандартные:
| + | |
− | *#* utf8;
| + | |
− | *#* Data::Dumper;
| + | |
− | *#* Getopt::Long;
| + | |
− | *#* Encode.
| + | |
− | * MTA, например, Postfix
| + | |
− | * собственно сервер Jabber
| + | |
| | | |
− | Настройка производится в нескольких местах: сам транспорт, база данных транспорта, почтовый агент, Jabber-сервер.
| + | (продолжение следует) |
− | | + | --[[User:Om|Om]] 14:54, 6 декабря 2006 (CET) |
− | == Настройка самого транспорта ==
| + | |
− | Настройка транспорта производится в файле smtp.ini. Пример данного файла приводится в дистрибутиве:
| + | |
− | | + | |
− | # Our service name (FQDN)
| + | |
− | name=smtp.jabber.org.net.ru
| + | |
− | # Jabbber server
| + | |
− | server=jabber.org.net.ru
| + | |
− | # Port on jabber server
| + | |
− | port=5333
| + | |
− | # Secret that is using while connecting to jabber server
| + | |
− | password=seCREt
| + | |
− | # Logfile to output information
| + | |
− | logfile=log.txt
| + | |
− | # Turn on debugging
| + | |
− | # debug=1
| + | |
− | | + | |
− | ;name: полное имя сервиса в Jabber. То есть имя вида: smtp.my.jabber.server.ru, где my.jabber.server.ru — имя Вашего сервера Jabber.
| + | |
− | ;server: полное доменное имя вашего Jabber-сервера.
| + | |
− | ;port: прослушиваемый порт Jabber-сервера, к которому следует подключаться транспорту.
| + | |
− | ;password: пароль на подключение сервиса.
| + | |
− | ;logfile: имя файла журнала.
| + | |
− | ;debug: включение режима отладки.
| + | |
− | | + | |
− | Следует отметить, что при отсутствии имени сервиса оно будет выбрано автоматически путём добавления к имени сервера префикса smtp и точки. Например, для сервера jabber.org автоматически выбранное имя будет smtp.jabber.org.
| + | |
− | | + | |
− | == Настройка сервера Jabber ==
| + | |
− | | + | |
− | В сервере Jabber нужно настроить порт для приёма соединения от транспорта, для примера из предыдущего параграфа - 5333.
| + | |
− | | + | |
− | Пример для [[ejabberd]], в случае, если транспорт установлен на том же сервере:
| + | |
− | | + | |
− | {5333, ejabberd_service, [{access, all},
| + | |
− | {ip, {127, 0, 0, 1}},
| + | |
− | {hosts, ["smtp.jabber.org.net.ru"], [{password, "seCREt"}]}
| + | |
− | ]
| + | |
− | }
| + | |
− | ,
| + | |
− | | + | |
− | == Настройка MTA Postfix ==
| + | |
− | Если у Вас уже имеется настроенный MTA Postfix, то изменения конфигурации для поддержания дополнительного домена будут минимальные, в случае необходимости настройки следует обратиться к [http://www.postfix.org официальной документации], так как объём данного документа не позволяет нам покрыть даже часть возможных вариантов настройки почтового сервера пусть даже небольшого масштаба.
| + | |
− | | + | |
− | Итак, для настройки postfix нам необходимо внести изменения в файлы main.cf и master.cf, которые можно отнести, пожалуй, к самым главным файлам настройки postfix и в файле transport, который указывает на маршрутизацию писем по получателю.
| + | |
− | | + | |
− | ====Изменения в файле main.cf====
| + | |
− | | + | |
− | В пункт '''mydestination''' необходимо добавить обслуживаемый jabber-домен, например для jabber.org:
| + | |
− | | + | |
− | mydestination = $myhostname, localhost, jabber.org
| + | |
− | | + | |
− | (в данном случае добавлен только jabber.org в конец списка) | + | |
− | Также требуется отключить проверку пользователей домена jabber на присутствие в системе:
| + | |
− | | + | |
− | local_recipient_maps =
| + | |
− | | + | |
− | То есть достаточно присвоить этому параметру пустое значение. (Такая настройка небезопасна в отношении спама!) Чтобы исключить опасность, необходимо создать дополнительный файл, который будет содержать запись, что все пользователи jabber-домена являются допустимыми. Подробнее об этом можно прочитать в документации по postfix.
| + | |
− | Если параметр transport_maps ещё не включает в себя файл transport, то добавьте его:
| + | |
− | | + | |
− | transport_maps = hash:/etc/postfix/transport
| + | |
− | | + | |
− | ====Изменения в файле master.cf====
| + | |
− | | + | |
− | Добавляем следующие строки для транспорта:
| + | |
− | | + | |
− | jabber unix - n n - - pipe \
| + | |
− | flags=DRhu user=jabber argv=/opt/jabber/mailgate/smtpbot ${sender} ${recipient}
| + | |
− | | + | |
− | Здесь в поле user указывается пользователь, с правами которого работает jabber-сервер, и в параметре argv указывается полный путь до файла smtpbot в файловой системе сервера.
| + | |
− | | + | |
− | ====Изменения в файле transport====
| + | |
− | В файл transport вписываем строчку для нашего домена (на примере jabber.org):
| + | |
− | | + | |
− | jabber.org jabber:
| + | |
− | | + | |
− | ====Проверка и запуск====
| + | |
− | | + | |
− | После завершения настройки необходимо выполнить команду '''postmap transport''', задать postfix команду перечитать конфигурацию (в Linux - '''/etc/init.d/postfix reload''') и в файле '''/var/log/mail''' проверить, что postfix работает нормально. Затем можно в клиенте jabber подключаться к транспорту и пересылать сообщения из jabber на email и наоборот.
| + | |
− | | + | |
− | [[Category:Gateway]]
| + | |
− | [[Category:HowTo]]
| + | |