Editing Mysmpt-t

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: MediaWiki upgrading

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
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;
+
*#*     MIME::Base64;
+
*#*     MIME::QuotedPrint;
+
*# стандартные:
+
*#*     utf8;
+
*#*    Data::Dumper;
+
*#*     Getopt::Long;
+
*#*     Encode.
+
 
* MTA, например, Postfix
 
* MTA, например, Postfix
 
* собственно сервер Jabber
 
* собственно сервер Jabber
Line 41: Line 31:
  
 
  # Our service name (FQDN)
 
  # Our service name (FQDN)
  name=smtp.jabber.org.net.ru
+
  name=dummy
 
  # Jabbber server
 
  # Jabbber server
 
  server=jabber.org.net.ru
 
  server=jabber.org.net.ru
Line 47: Line 37:
 
  port=5333
 
  port=5333
 
  # Secret that is using while connecting to jabber server
 
  # Secret that is using while connecting to jabber server
  password=seCREt
+
  password=secret
 
  # Logfile to output information
 
  # Logfile to output information
 
  logfile=log.txt
 
  logfile=log.txt
Line 53: Line 43:
 
  # debug=1
 
  # debug=1
  
;name:    полное имя сервиса в Jabber. То есть имя вида: smtp.my.jabber.server.ru, где my.jabber.server.ru — имя Вашего сервера Jabber.
+
name - это полное имя сервиса в Jabber. То есть имя вида: smtp.my.jabber.server.ru, где my.jabber.server.ru - имя Вашего сервера Jabber.<br>
;serverполное доменное имя вашего Jabber-сервера.
+
server - полное DNS имя Вашего Jabber-сервера.<br>
;port:    прослушиваемый порт Jabber-сервера, к которому следует подключаться транспорту.
+
port - прослушиваемый порт Jabber-сервера к которому следует подключаться.<br>
;password: пароль на подключение сервиса.
+
password - пароль на подключение сервиса.<br>
;logfileимя файла журнала.
+
logfile - имя файла для логов.<br>
;debug:    включение режима отладки.
+
debug - включение режима отладки.
  
Следует отметить, что при отсутствии имени сервиса оно будет выбрано автоматически путём добавления к имени сервера префикса smtp и точки. Например, для сервера jabber.org автоматически выбранное имя будет smtp.jabber.org.
+
Следует отметить, что при отсутствии имени сервиса оно будет выбрано автоматически путём добавления к имени сервера префикса 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 ==
Line 79: Line 56:
  
 
Итак, для настройки postfix нам необходимо внести изменения в файлы main.cf и master.cf, которые можно отнести, пожалуй, к самым главным файлам настройки postfix и в файле transport, который указывает на маршрутизацию писем по получателю.
 
Итак, для настройки postfix нам необходимо внести изменения в файлы main.cf и master.cf, которые можно отнести, пожалуй, к самым главным файлам настройки postfix и в файле transport, который указывает на маршрутизацию писем по получателю.
 +
main.cf:
 +
В пункт mydestination необходимо добавить обслуживаемый jabber-домен, например для jabber.org:
  
====Изменения в файле main.cf====
+
<nowiki>'''mydestination = $myhostname, localhost, jabber.org'''</nowiki>
 
+
В пункт '''mydestination''' необходимо добавить обслуживаемый jabber-домен, например для jabber.org:
+
 
+
mydestination = $myhostname, localhost, jabber.org
+
 
+
(в данном случае добавлен только jabber.org в конец списка)
+
Также требуется отключить проверку пользователей домена jabber на присутствие в системе:
+
 
+
local_recipient_maps =
+
  
То есть достаточно присвоить этому параметру пустое значение. (Такая настройка небезопасна в отношении спама!) Чтобы исключить опасность, необходимо создать дополнительный файл, который будет содержать запись, что все пользователи jabber-домена являются допустимыми. Подробнее об этом можно прочитать в документации по postfix.
+
данном случае я добавил только jabber.org в конец списка)
Если параметр transport_maps ещё не включает в себя файл transport, то добавьте его:
+
Также требуется отключить проверку пользователей jabber-домена на присутствие в системе:
  
transport_maps = hash:/etc/postfix/transport
+
<nowiki>'''local_recipient_maps ='''</nowiki>
  
====Изменения в файле master.cf====
+
То есть присвоить этому параметру пустое значение. Если у Вас обслуживается несколько доменов, то необходимо создать дополнительный файл, который будет содержать запись что все пользователи jabber-домена являются допустимыми. Подробнее об этом можно прочитать в документации по postfix.
 +
Если параметр transport_maps ещё не включает в себя файл transport, то добавьте его
  
Добавляем следующие строки для транспорта:
+
<nowiki>transport_maps = hash:/etc/postfix/transport</nowiki>
  
jabber  unix  -      n      n      -      -      pipe \
+
master.cf. Добавляем следующие строки транспорта:
  flags=DRhu user=jabber argv=/opt/jabber/mailgate/smtpbot ${sender} ${recipient}
+
  
Здесь в поле user указывается пользователь, с правами которого работает jabber-сервер, и в параметре argv указывается полный путь до файла smtpbot в файловой системе сервера.
+
<nowiki>jabber unix  -       n      n      -      -      pipe
 +
  flags=DRhu user=jabber argv=/opt/jabber/mailgate/smtpbot ${sender} ${recipient}</nowiki>
  
====Изменения в файле transport====
+
Здесь в поле user указывается пользователь от чьего имени работает jabber-сервер, и исправляете путь до
В файл transport вписываем строчку для нашего домена (на примере jabber.org):
+
местонахождения траспорта в Вашей файловой системе.
  
jabber.org         jabber:
+
transport. Прописываем строчку для нашего домена (на примере jabber.org):
  
====Проверка и запуск====
+
<nowiki>jabber.org        jabber:</nowiki>
  
После завершения настройки необходимо выполнить команду '''postmap transport''', задать postfix команду перечитать конфигурацию (в Linux - '''/etc/init.d/postfix reload''') и в файле '''/var/log/mail''' проверить, что postfix работает нормально. Затем можно в клиенте jabber подключаться к транспорту и пересылать сообщения из jabber на email и наоборот.
+
После это выполните команду '''postmap transport'''.
  
 
[[Category:Gateway]]
 
[[Category:Gateway]]
[[Category:HowTo]]
 

Please note that all contributions to JaWiki (Jabber/XMPP wiki) may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see JaWiki (Jabber/XMPP wiki):Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)