Обсуждение статьи тематического каталога: Re Три письма на Perl (Третий вариант)Ссылка на текст статьи: http://www.opennet.me/base/dev/perl_sendmail.txt.html
в моем случае сервер провайдера не хотел принимать комманду "1512" пришлось передавать перевод строки. (о себе сообщает "ESMTP Sendmail 8.12.10/8.12.9")
А в общем огромное спасибо автору - просто открыл глаза! Выкинул с сервера все почтовые монстры - теперь он мне СМС шлет в случае чего. (сервер не почтовый конечно)
вот мой скрипт - может кому сгодится
#!/usr/bin/perl
$debug = 0;
$mail_adr = "user\@host.com";
$mail_from = $mail_adr;
use IO::Socket;
my $socket = IO::Socket::INET->new ("mail_server:25");
defined $socket or die "ERROR: $!";
$socket->print ("HELO domain\n");
$r = <$socket>;
print $r if ($debug==1);
$socket->print ("MAIL FROM:$mail_from\n");
$r = <$socket>;
print $r if ($debug==1);
$socket->print ("RCPT TO:$mail_adr\n");$r = <$socket>;
print $r if ($debug==1);
$socket->print ("DATA\n");
$r = <$socket>;
print $r if ($debug==1);
$socket->print ("From:Server <$mail_from>\nTo:Vasia Pupkin <$mail_adr>\nSubject:Test Mail.\n\nTest message!!!\n");
$r = <$socket>;
print $r if ($debug==1);
$socket->print ("\.\n");
$r = <$socket>;
print $r;
$socket->print ("QUIT\n");
$r = <$socket>;
print $r if ($debug==1);
Удивительно безграмотно
Второй вариант не удалось испытать но первый и третий не работают :). Хе Хе Хе :)
Первый совет помог, большое спасибо.
Но вот вопрос. Что с пермишенами? Ведь скрипт запускается апачем с правами nobody, соответственно сендмайл тоже запускается от nobody, которому запрещено писать в /var/spool/mqueue, нехватку пермишенов видно в логе майла. Поправьте если я неправ. Как грамотно разрулить пермишенсы? Или как другим способом решить эту проблему!?
fsd
f
Вот вам ещё вариантuse Net::SMTP;
$mail_user_to='test@localhost';
$mail_user_from='test@localhost';
$subj='123';
$Body='321';
my $smtp = Net::SMTP->new($mail_server);
$smtp->mail($ENV{USER});
$smtp->to($mail_user);
$smtp->data();
$smtp->datasend("To: $mail_user_to\n");
$smtp->datasend("From: $mail_user_from\n");
$smtp->datasend("Subject: $subj\n");
$smtp->datasend("\n");
$smtp->datasend("$Body\n");
$smtp->dataend();
$smtp->quit;
Сорри забыл добавить описание переменной:
$mail_server='localhost'
удивительная безграмотность, а пароль де? идиот
Спасибо автору за подсказки!Скорблю по отсутствующим мозгам у неспособных воспользоваться разжеванными идеями.
Помогите пожалуйста написать более обширный скрипт на перл для отправки почты с использованием переменных в получателях и тех кто в копии стоит, а также шаблоном письма взятого с файла. Полученое письмо должно быть формата html.
Получателей переданые переменной могут быть несколько, а может быть один.
ОТправка делается через SMTP. Сендмейл и прочее нету возможности установить.