LINUX.ORG.RU
ФорумAdmin

[sms][email][filter]perl-script

 , ,


0

0

ОпСоС предоставляет email-адрес «number@opsos.net» который форвардит входящие email-ы на телефон. Штука удобная для того чтобы всегда быть на связи. Но тупо форвардить всю почту на этот адрес не оптимально — в 160 символов SMS часто лезет куча ненужной инфы из MIME-хидеров, а кирилица сокращает полезный объём вдвое если вообще доходит. Толкового решения в сети не нашёл, решил сам соорудить правильный фильтр, может кому пригодится. Надо положить этот файл в $HOME/pager и в $HOME/.forward добавить «|$HOME/pager»

#!/usr/bin/perl
use Email::MIME;
use MIME::Lite;
use Lingua::Cyrillic::Translit::ICAO qw/ cyr2icao /;

local $/;
my $email_text = <STDIN>;
$email_text =~ s/^\s+$//mg;

my $email = Email::MIME->new($email_text);
my $subj = $email->header("Subject");
my $from = $email->header("Reply-To") || $email->header("From");

my $body = ($email->parts())[0]->body;
$n = 150 - length ($from);
my $data = cyr2icao($subj) . '/' . cyr2icao($body);
$data =~ s/^(.{0,$n}).*$/$1/s;
$msg = MIME::Lite->new(
    From     => $from,
    To       => 'number@opsos.net',
    Subject  => $data,
    Data     => ''
);
$msg->send;

★★
Ответ на: комментарий от gserg

во-первых не у любого ОпСоСа есть соответствующий тарифный план для такого офиса в кармане, а во-вторых если бы даже был — я в любом случае с телефона email-ы посылать не собираюсь, а вот оперативно узнать что пришло письмо, от кого оно и про что очень даже полезно.

pupok ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.