![]() ![]() |
Интересные решения Perl. Вопросы и ответыОтправка сообщений через Jabber-серверДля отправки сообщений через Jabber-сервер (пользователям Jabber) можно использовать модуль Jabber::SimpleSend. Если у вас еще нет учетной записи на каком-либо Jabber-сервере, то ее нужно создать (в переменной $jUser - JID, в $jPass - пароль). Предположим, что в переменной $to содержится JID получателя сообщения. Получатель может быть зарегистрирован и на другом сервере, тогда у вашего сервера должна быть возможность доставки сообщений на этот сервер. Если тема и текст сообщения в кодировке UTF-8, то отправка может выглядеть так: use strict;
use Jabber::SimpleSend;
my $jUser = 'user@server.tld';
my $jPass = '123456:)';
my $to = 'user2@server.tld';
my $subject = 'тема сообщения';
my $message = "это тестовое сообщение\nвторая строка строка\nтретья строка";
Jabber::SimpleSend::send_jabber_message({
user => $jUser,
password => $jPass,
target => $to,
subject => $subject,
message => $message});
Если тема и текст сообщения в кодировке windows-1251, то пример несколько усложняется: use strict;
use Jabber::SimpleSend;
use Text::Iconv;
use Encode;
my $jUser = 'user@server.tld';
my $jPass = '123456:)';
my $to = 'user2@server.tld';
my $subject = 'тема сообщения';
my $message = "это тестовое сообщение\nвторая строка строка\nтретья строка";
my $converter = Text::Iconv->new('WINDOWS-1251', 'UTF-8');
$subject = $converter->convert($subject);
$message = $converter->convert($message);
$subject = Encode::decode('utf8', $subject);
$message = Encode::decode('utf8', $message);
Jabber::SimpleSend::send_jabber_message({
user => $jUser,
password => $jPass,
target => $to,
subject => $subject,
message => $message});
Опубликовано: 27 октября 2011 года.
|
|
© Алексей Кощеев, г.Киров, 2001-2023 |
|