Как из строки выбрать e-mail-адресс??
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Как из строки выбрать e-mail-адресс??
Собсно сабж.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Как из строки выбрать e-mail-адресс??
Код: Выделить всё
zg# echo "My email is zg@mail.ch!" | grep -Eo '[a-z]+@[a-z]+\.[a-z]+'
zg@mail.ch
zg#
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
Чувак, ты реальна крут! +1
а как отправить ему письмо?
а как отправить ему письмо?
Код: Выделить всё
mail -s Test $stroka | grep -Eo '[a-z]+@[a-z]+\.[a-z]+\.[a-z]+' ??
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Как из строки выбрать e-mail-адресс??
Код: Выделить всё
zg# echo "My email is zg@mail.ch!" | grep -Eo '[a-z]+@[a-z]+\.[a-z]+' | xargs -I % echo sendmail % "'It is some spam for %'"
sendmail zg@mail.ch 'It is some spam for zg@mail.ch'
zg#
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
чего-то не уходит
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Как из строки выбрать e-mail-адресс??
risk94 писал(а):чего-то не уходит
работает отдельно?sendmail zg@mail.ch 'It is some spam for zg@mail.ch'
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
Работает вот так:
Но, тогда приходит только пустышка, ни темы не самой месаги. Куда добавить Тему и сам месадж?
Код: Выделить всё
#!/bin/sh
cat ./full |
{
while read stroka
do
echo $stroka | grep -Eo '[0-9,a-z]+@[a-z]+\.[a-z]+\.[a-z]+' | xargs -I % mail %
done
}
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Как из строки выбрать e-mail-адресс??
Код: Выделить всё
man mail
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Как из строки выбрать e-mail-адресс??
немного оптимизировал )))
Код: Выделить всё
grep -Eio '[0-9a-z]+@[0-9a-z]+(\.[0-9a-z]+)+' ./full | xargs -I % mail % "It's spam"
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
Код: Выделить всё
A message that you sent contained a recipient address that was incorrectly
constructed:
It's spam missing or malformed local part (expected word or "<")
The message has not been delivered to any recipients.
------ This is a copy of your message, including all the headers. ------
To: It's spam, root@ahou.local
Темы все равно нет. Если поможет mta - exim
Последний раз редактировалось risk94 2008-09-15 8:04:42, всего редактировалось 1 раз.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Как из строки выбрать e-mail-адресс??
тебе на только на bash?
я видел можно на perl!
я видел можно на perl!
Код: Выделить всё
if (!$email =~ /^[a-zA-Z_\\.-][a-zA-Z0-9_\\.-\\d]*\\@[a-zA-Z\\.-\\d]+\\.[a-zA-Z]{2,4}$/) ) {
print "не соответсвет";
{
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
bash не годитсо. cshell
а можно полностью на перле, а то я не волоку нифига в нем
а можно полностью на перле, а то я не волоку нифига в нем
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Как из строки выбрать e-mail-адресс??
как отправить письмо из консоля (sendmail)?
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: Как из строки выбрать e-mail-адресс??
читал?zg писал(а):man mail
Код: Выделить всё
-s subject
Specify subject on command line. (Only the first argument after
the -s flag is used as a subject; be careful to quote subjects
containing spaces.)
Код: Выделить всё
#!/bin/sh
mymail()
{
echo "test" | mail -s spam $1
}
grep -Eio '[0-9a-z]+@[0-9a-z]+(\.[0-9a-z]+)+' ./full | xargs -I % mymail %
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
man mail - читал канешна, про сабжкт понял, но с телом письма не въехал
Заработало отак:
Заработало отак:
Код: Выделить всё
email_adress=`grep -Eio '[0-9a-z]+@[0-9a-z]+(\.[0-9a-z]+)+' ./full`
echo "Тело сообщения" | mail -s 'Тема сообщения' $email_adress
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
исче вопрос, в той же строке где и email, есть дата(формат: 06.06.2008), как сделать проверку с текущей? точнее как ее выбрать из строки?
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Как из строки выбрать e-mail-адресс??
risk94 писал(а):исче вопрос, в той же строке где и email, есть дата(формат: 06.06.2008), как сделать проверку с текущей?
Код: Выделить всё
my $data0="06.06.2008";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
$mon++;
$year+=1900;
if ($mday<10) { $mday="0$mday"; }
if ($mon<10) { $mon="0$mon"; }
if ($min<10) { $min="0$min"; }
$date="$mday $mon $year";
$time="$hour:$min:$sec";
$cur_all_day=$mday+$mon*30+$year*365;
$curd=$mday.$mon.$yea;
if (! $data0 =~ $curd) {
print "erroe time";
}
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
я так понял это непосредственно сравнение, а сама выборка даты из строки?
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Как из строки выбрать e-mail-адресс??
строку покажи, почему ты не хочешь гуглов воспользоваться?
написать: "выборка данных из строки perl"
написать: "выборка данных из строки perl"
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
строка типа
роюсь я в нете, роюсь
Не серчайте плиз, учусь, тока пока пытаюсь осилить шелл для начала, а потом уж перл.
Код: Выделить всё
vasya pupkin 192.168.0.1 vasya.p@mail.ru 06.06.2008
Не серчайте плиз, учусь, тока пока пытаюсь осилить шелл для начала, а потом уж перл.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Как из строки выбрать e-mail-адресс??
это файл и в нем все строки такого вида или разные?risk94 писал(а):строка типароюсь я в нете, роюсьКод: Выделить всё
vasya pupkin 192.168.0.1 vasya.p@mail.ru 06.06.2008
Не серчайте плиз, учусь, тока пока пытаюсь осилить шелл для начала, а потом уж перл.
ЗЫ можно открыть файл, разбить по словам (пробелы как запятые) и работать только с поледним словом...
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Как из строки выбрать e-mail-адресс??
если разные строки, то нужно распарсить, посмотри тут про exim маленько
http://forum.lissyara.su/viewtopic.php?f=20&t=3577
http://forum.lissyara.su/viewtopic.php?f=20&t=8955
http://forum.lissyara.su/viewtopic.php?f=20&t=3577
http://forum.lissyara.su/viewtopic.php?f=20&t=8955
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
Да, это файл. в нем все строки такого вида.
По поводу линков на паги про ексим - не уловил.
По поводу линков на паги про ексим - не уловил.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Как из строки выбрать e-mail-адресс??
по быстрячку не поулчаеться, vasya pupkin - это везде два слова может быть?risk94 писал(а):Да, это файл. в нем все строки такого вида.
По поводу линков на паги про ексим - не уловил.
примерно так:
Код: Выделить всё
open(MAIL, "/var/log/maillog");
while ($line = <MAIL>)
{
my ($month, $time, $servicename, $id) = split /\s+/, $line, 7;
}
Код: Выделить всё
open (MYFILE, "2.txt") || die "awibka";
my (@sdata)=<MYFILE>;
foreach $str (@sdata) {
($razdel, $period, $bla, $bla)=split(/ /;, $str);
}
-
- лейтенант
- Сообщения: 831
- Зарегистрирован: 2007-06-01 19:27:51
Re: Как из строки выбрать e-mail-адресс??
Не, если в строке есть дата, которая равна текущей, то мне нужно отправить письмо по имейлу, который тоже есть в этой строкеProFTP писал(а):....
ты потом хочешь удалить те строки которые которые не совпали с датой?....