Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение под *NIX системы > отправить почту sendmail'ом через консоль


Автор: monax 28.11.2007, 16:11
Как через консоль отправить почту, используя сендмейл? То есть мне нужно сделать тоже самое, что делает функция mail  в PHP, но через консоль.

Автор: JackYF 28.11.2007, 17:09
Цитата(monax @  28.11.2007,  16:11 Найти цитируемый пост)
Как через консоль отправить почту, используя сендмейл?

man sendmail smile
man mailx
man mail
man любая консольная мыльная программа smile...

Автор: Werti 28.11.2007, 17:15
Цитата(monax @ 28.11.2007,  16:11)
Как через консоль отправить почту, используя сендмейл? То есть мне нужно сделать тоже самое, что делает функция mail  в PHP, но через консоль.

man google )
http://www.opennet.ru/openforum/vsluhforumID1/53989.html

Добавлено через 3 минуты и 21 секунду
Туда же.
#!/usr/bin/perl -w
##

use strict;
use Mail::Sender;
#use Fcntl;

.....

$sender = new Mail::Sender
  {smtp => 'mail.strs.ru', from => '[email protected]'};
$sender->MailFile({to => '[email protected]',
  subject => "La la la",
  msg => "La la la.",
  file => "/usr/stat/.stcsv"}); 

Автор: monax 28.11.2007, 18:39
Цитата(Werti @  28.11.2007,  17:15 Найти цитируемый пост)
http://www.opennet.ru/openforum/vsluhforumID1/53989.html

Ну это не совсем то, что мне нужно. Нужно отправить письмо без использования perl. В идеале отправка письма должна осуществляться просто консольной командой.

Цитата(JackYF @  28.11.2007,  17:09 Найти цитируемый пост)
man любая консольная мыльная программа smile... 

ман меня не выручил

Автор: Werti 28.11.2007, 18:59
Цитата(monax @ 28.11.2007,  18:39)
Цитата(Werti @  28.11.2007,  17:15 Найти цитируемый пост)
http://www.opennet.ru/openforum/vsluhforumID1/53989.html

Ну это не совсем то, что мне нужно. Нужно отправить письмо без использования perl. В идеале отправка письма должна осуществляться просто консольной командой.

Цитата(JackYF @  28.11.2007,  17:09 Найти цитируемый пост)
man любая консольная мыльная программа smile... 

ман меня не выручил

Ну я бы не торопился на вашем месте,
sh ./sendmail.pl 
И неважно что скрипт на перле.
Либо man mutt.
Только вот к чему велосипед творить.

Автор: monax 28.11.2007, 19:18
Цитата(Werti @  28.11.2007,  18:59 Найти цитируемый пост)
Ну я бы не торопился на вашем месте,
sh ./sendmail.pl 
И неважно что скрипт на перле.


Попробовал такой код
Код

#!/usr/bin/perl -w

$cmd_mail = "sendmail -t";
$to_email = "simple_mail\@inbox.ru";
$subject = "test";
$message = "this is test";

open (SENDMAIL, "|$cmd_mail") || die "ERROR: Can not run sendmail";

print SENDMAIL "MIME-Version: 1.0\n";
print SENDMAIL "Content-Type: text/plain; charset=\"koi8-r\"\n";
print SENDMAIL "Content-Transfer-Encoding: 8bit\n";
print SENDMAIL "To: $to_email\n";
print SENDMAIL "From: Nobody <tregor\@inbox.ru>\n";
print SENDMAIL "Subject: $subject\n\n";
print SENDMAIL $message . "\n";
close (SENDMAIL);


на что мне шелл сказал
Код

./s.pl: line 3: =: command not found
./s.pl: line 4: =: command not found
./s.pl: line 5: =: command not found
./s.pl: line 6: =: command not found
./s.pl: line 8: syntax error near unexpected token `SENDMAIL,'
./s.pl: line 8: `open (SENDMAIL, "|$cmd_mail") || die "ERROR: Can not run sendmail";'


А по поводу изобретения велосипеда... У меня есть сервак, на котором стоит недонастроенный sendmail. Задача - из моей программы на С++ нужно отправлять письмо с этого сервера, используя этот сендмейл.
Кстати, если проблема в настройках sendmail'a, это можно как-нибудь проверить?

Автор: marykone 28.11.2007, 19:18
Цитата

# telnet 192.168.127.230 25
Trying 192.168.127.230...
Connected to mail.akko.local.
Escape character is '^]'.
220 mail.akko.com.ua ESMTP
--> HELO sysadm.akko.local
250 mail.akko.com.ua
--> MAIL FROM:<[email protected]>
250 2.1.0 Ok
--> RCPT TO:<[email protected]>
554 5.7.1 <[email protected]>: Relay access denied
--> QUIT
221 2.0.0 Bye
Connection closed by foreign host.


вот тебе не подойдет ?

если не понятно  то тебе в помощь http://www.sys-adm.org.ua/rfc/rfc2821.pdf

Добавлено @ 19:28
в ообщем telnet yurmail 25
ему в ответ hello или ehlo
потом mail from вбиваешь ящик с которго нужно отправить 
он тебе говорит ок типа есть такой ящик на сервере 
ну ты и вбиваешь 
если через mail 
то пишешь mail to юзер кому пишешь письмо @ домен
subject : тема письма 
собственно тело письма 

и в конце точку ставишь 
и ентер точка должна быть с новой строки 
он тебе в ответ EOT 
все письмо отправленно от пользователя под которым ты запустил команду mail 

получать заходишь пользователем который должен получить вбиваем mail 
он те показывает что есть письмо ты его открываешь читаешь 
и наверное радуешься smile
все зависит от содержания письма ну и от настроен ли у тебфя почтовый сервер 

Автор: quasi 2.12.2007, 12:02
Код

mail -s 'message' [email protected]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)