Вот собственно линк к статье http://www.lissyara.su/?id=1899
Покритикуйте

Soldier писал(а):Настроил. Работает норм. Сделал сигналку на этой ерунде. Казалось бы прога простая, а для консоли и жабы самое то.
Хотя перед запуском конфиг полировать пришлось, да и в статье не так все гладко описано. Может быть из за сервера такое (у меня WildFire). Хотя уже это не важно.
в так всегда получается, кстати Миранда к серверу OpenFire со старой аунтентификацией SASL тоже не цепляется пока её не отключишь.да и в статье не так все гладко
Use of uninitialized value in string eq at /usr/local/bin/sendxmpp line 369.
Error 'Connect': [HASH(0x86a06e8)]
он так же из консоли работает? что-то в его доках непонятно как ему что-то скармливать из консоли..hizel писал(а):сталкивался
но я сделал по другому, поднял бота и через него все послвла куда надо кому надо
gozerbot который, получается удобнее
да вот и фишка в том, что чат не нужен (скрипач не нужен), хочется скриптик информирующий о новых сообщениях в почте. так взял nmh(mh), получил новые, обработал как тебе удобно, сунул их в sendxmpp - вот тебе уведомления в Jabber'e. ИМХО удобно.hizel писал(а):я не напрягался, дело в том , что он отправляет как сообщение, что не очень удобно
а гозер работает в чате, это корошо :]
поменял на:$self->{SERVER}->{ssl} = $self->_arg("ssl",0);
с флагом -t при обязательной SSL в Openfire 3.6.4 ходит.$self->{SERVER}->{ssl} = $self->_arg("ssl",1);
Код: Выделить всё
router# echo "ssssssss" | sendxmpp -s "ddddddddd" lissyara@router.local
Can't use an undefined value as a HASH reference at /usr/local/lib/perl5/site_perl/5.8.9/XML/Stream.pm line 1165.
router#
Код: Выделить всё
по дефолту
delete($self->{SIDS}->{$currsid});
Код: Выделить всё
поменять на
delete($self->{SIDS}->{$currsid}) unless $currsid eq $sid;
http://hiddenrealms.org/articles/net-jabber1.phpPerl - Net::Jabber (XML::Stream), and Authen::SASL
For some reason, XML::Stream and Authen::SASL refuse to play nicely together on the FreeBSD systems I've tried so far. Whenever I attempt to authenticate a Net::Jabber::Client object against an OpenFire/WildFire server supporting SASL/TLS/SSL, I get the following error:
Can't use an undefined value as a HASH reference at /usr/local/lib/perl5/site_perl/5.8.8/XML/Stream.pm line 1165.
Digging around the net, I found an article over at <pudge*/> which says commenting out line 1163 in XML::Stream did the trick. However, to be a little safer, I modified it to only delete $currsid if $sid isn't equal to $currsid.
--- Stream.pm Tue Feb 12 20:33:37 2008
+++ Stream.pm Tue Feb 12 20:32:51 2008
@@ -1160,7 +1160,7 @@
$self->{SOCKETS}->{*STDIN} = $sid;
}
- delete($self->{SIDS}->{$currsid});
+ delete($self->{SIDS}->{$currsid}) unless ($sid eq $currsid);
if (exists($self->GetRoot($sid)->{version}) &&
($self->GetRoot($sid)->{version} ne ""))
Unfortunately, that didn't quite solve my problem. While XML::Stream no longer crashed, for some reason my credentials failed to work. After more searching, I found another article at EscapeLogic that proposed the following changes in Net::XMPP::Protocol (For me, /usr/local/lib/perl5/site_perl/5.8.8/Net/XMPP/Protocol.pm)
--- Protocol.pm Tue Feb 12 20:40:42 2008
+++ Protocol.pm Tue Feb 12 20:41:11 2008
@@ -1804,10 +1804,10 @@
carp("AuthSend requires a password arguement")
unless exists($args{password});
- if($self->{STREAM}->GetStreamFeature($self->GetStreamID(),"xmpp-sasl"))
- {
- return $self->AuthSASL(%args);
- }
+# if($self->{STREAM}->GetStreamFeature($self->GetStreamID(),"xmpp-sasl"))
+# {
+# return $self->AuthSASL(%args);
+# }
return $self->AuthIQAuth(%args);
}
With both of these in place, I was finally able to connect to the OpenFire/WildFire servers without issue. I hardly call this a solution, since it makes moving a Net::Jabber application around difficult, but I've found no way around it. Yet. I'll keep looking...
Cheers,
-- WolfSage
desruptor писал(а):отправляю так сообщение
echo 'тест' | sendxmpp -d *****@jabber.ru
он мне выдает что
Cannot resolve <мой хост>: at /usr/share/perl5/vendor_perl/XML/Stream.pm line 406.
Какую мелочь я упустил?
Gamerman писал(а):А уведомление с почты на Jabber как-то можно прикрутить через это дело?
/0Gamerman писал(а):тольк скрипты лень писать ибо не умею
Если у кого бедет проблема с русской кодировкой попробуйте открыть файл sendxmpp, найти строки
use Net::XMPP;
use Getopt::Long;
use strict;
и сразу после них добавить строку
use encoding 'koi8-r';
или
use encoding 'utf-8';