Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Отправка smtp со вложением с локального smtp / 10 сообщений из 10, страница 1 из 1
21.03.2012, 13:04
    #37715547
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
Нашёл скрипт отпарвки, добработал его только в той части, что жёстко зашил параметры, убрал ssl.
Получилось такое.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
#!/bin/bash
  mailto="xxxxxxx@yyyyyyyyy.ru";
  mailfrom="msk@oracle.com";
  bodyfile="/home/oracle/rman_src/log_1/21_03_2012_12_00.log";
  smtpserver="10.127.24.57";
  subject="$Msc_Db_Oracle";
  smtpport=25

if [ ! -f $bodyfile ]
then
  echo "Error! Cannot find your mail body text file."
  echo "Error! Cannot find your mail body text file." | logger -t `basename $BASH_SOURCE` -p local0.info
  exit 1
fi

echo "Mail From: $mailfrom";
echo "Rcpt To: $mailto";
echo "Data";
echo "Subject: "$subject;
echo "From: "$mailfrom;
echo "To: "$mailto;
echo ;
#cat $bodyfile;

exec 9<>/dev/tcp/$smtpserver/$smtpport
echo "HELO me" >&9
read -r temp <&9
echo "----1----"
echo "$temp"
echo "----2----"
echo "Mail From: $mailfrom" >&9
read -r temp <&9
echo "$temp"
echo "Rcpt To: $mailto" >&9
read -r temp <&9
echo "$temp"
echo "Data" >&9
read -r temp <&9
echo "$temp"
echo "Subject: "$subject >&9
echo "From: "$mailfrom >&9
echo "To: "$mailto >&9
echo >&9
cat $bodyfile >&9
echo "." >&9
read -r temp <&9
echo "$temp"
echo "quit" >&9
read -r temp <&9
echo "$temp"
9>&-
9<&-
echo "Mail Send."
exit 0



Вызываю так
Код: sql
1.
./smail.sh  --bodyfile=/home/oracle/rman_src/log_1/21_03_2012_11_00.log



Ответ
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 Mail From: msk@oracle.com
Rcpt To: xxxxxxx@yyyyyyyyy.ru
Data
Subject:
From: msk@oracle.com
To: xxxxxxx@yyyyyyyyy.ru

----1----
554 SMTP synchronization error
----2----





Mail Send.



Через telnet с сервером удаётся соединиться и отправить сообщение.
Подозреваю, что проблема тут
exec 9<>/dev/tcp/$smtpserver/$smtpport

Но знаний не хватает разобраться/переделать этот фрагмент.

Подскажите.
спасибо.

p.s. smtp сервер на другой машине не на этой, с которой отправляю.
...
Рейтинг: 0 / 0
21.03.2012, 13:58
    #37715732
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
AlexGru,
Рершил проблему, прочитав это
Код: sql
1.
2.
3.
Спецификация протокола SMTP требует, чтобы клиент ждал ответа сервера в определённых точках диалога. Без PIPELINING, эти точки синхронизации - после каждой команды; с PIPELINING, их меньше, но они всё ещё существуют.
   Некоторые спамеры высылают полный набор команд SMTP без ожидания какого-либо ответаю Exim защищает от этого, путём отклонения сообщения, если клиент посылал будущий ввод (команды - прим. lissyara), когда этого не должно было быть.Посылается ответ о ошибке “554 SMTP synchronization error”, и соединение обрывается. Тестирование на эту ошибку не может быть идеальным, поскольку задержки передачи (неожиданный ввод может находиться в пути, но не получен при проверках exim). Однако, этим детектируется много случаев.
   Эта проверка может быть глобально отключена путём установки “smtp_enforce_sync” в ложь. Если вы хотите выборочно отключить эту проверку (например, только для определённых хостов), вы можете это сделать путём соответствующего использования модификатора “control” в ACL (смотрите раздел 39.18). Также, смотрите опцию “pipelining_advertise_hosts”.



После каждой команды общения с сервером, сделал sleep 1

Ужасно, хоть и работает.
...
Рейтинг: 0 / 0
21.03.2012, 14:32
    #37715835
Ихтиандр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
Текстовый файл вставляешь в почту зачем-то через практически телнет...

Почему не через mail ?

А если файл бинарный?
...
Рейтинг: 0 / 0
22.03.2012, 12:20
    #37717616
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
не достаточно знаний чтобы настроить/реализовать через mail.

Ещё вот вопрос в догонку, хочу выполнить несколько команд в bash и результат скинуть в текстовик, и потом его тоже себе отправить.

Вот к примеру
Код: sql
1.
ps -ef | grep ora | wc -l >> os.txt



Всё ок, но хотелось бы в текстовом файле получить, не одно число, а что-то типа
Код: sql
1.
oracle procs:  xxx



Как правильно приконкотенактить :) строчку
...
Рейтинг: 0 / 0
22.03.2012, 12:34
    #37717642
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
ИхтиандрТекстовый файл вставляешь в почту зачем-то через практически телнет...

Почему не через mail ?

А если файл бинарный?

Насколько понял, чтобы пользоваться mail должен быть локально запущен как-нибудь почтовый сервер типа sendmail или postfix и в нём уже прописан внешний smtp ?

?
...
Рейтинг: 0 / 0
22.03.2012, 14:48
    #37717993
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
AlexGru

Всё ок, но хотелось бы в текстовом файле получить, не одно число, а что-то типа
Код: sql
1.
oracle procs:  xxx



Как правильно приконкотенактить :) строчку

echo "oracle procs: `ps -ef | grep ora | wc -l`"
...
Рейтинг: 0 / 0
22.03.2012, 15:52
    #37718138
AlexGru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
--null--,
спасибо
...
Рейтинг: 0 / 0
22.03.2012, 15:55
    #37718147
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
да, признаться, у меня иногда стоит сабжевая задача и лучше всего использовать perl/python/tcl и какую-нибудь библиотеку smtp+mime, тогда бинарники будут правильно передаваться

скажем, использую такой небольшой скрипт

Код: ruby
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
#!/usr/bin/tclsh8.3

package require smtp
package require mime

#usage: send_attach Subject Filename Recipient

set subject [lindex $argv 0]
set filename [lindex $argv 1]
set recipient [lindex $argv 2]

proc send_message {recipient email_server subject body} {

    set token [mime::initialize -canonical text/plain -string $body]
    mime::setheader $token Subject $subject
    smtp::sendmessage $token -recipients $recipient -servers $email_server
    mime::finalize $token
}



#### START PROGRAM####

set host smtp.server.com

set imageT [mime::initialize -canonical "image/csv; name=\"$filename\"" -file $filename]

set multiT [mime::initialize  -canonical multipart/mixed -parts [list $imageT]]

set subject "$subject"
mime::setheader $multiT Subject $subject

smtp::sendmessage $multiT -recipients $recipient -servers $host
...
Рейтинг: 0 / 0
22.03.2012, 18:41
    #37718633
Ихтиандр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
AlexGruИхтиандрТекстовый файл вставляешь в почту зачем-то через практически телнет...

Почему не через mail ?

А если файл бинарный?

Насколько понял, чтобы пользоваться mail должен быть локально запущен как-нибудь почтовый сервер типа sendmail или postfix и в нём уже прописан внешний smtp ?

?
Обычно sendmail по умолчанию запущен.
Чтобы он работал достаточно павильно настроенного разрешения DNS.
Если его нет, то прописывается так называемый Smart Relay - почтовик, на который безусловно сваливается вся почта.
...
Рейтинг: 0 / 0
22.03.2012, 18:44
    #37718639
Ихтиандр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка smtp со вложением с локального smtp
Строчка начинающаяся с

DS

в /etc/mail/sendmail.cf

Это как раз релай, в качестве которого можешь прописать корпоративный почтарь.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Отправка smtp со вложением с локального smtp / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]