Подскажите как отправить письмо из скрипта
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 36
- Зарегистрирован: 2007-12-07 10:10:28
Подскажите как отправить письмо из скрипта
Установлен exim+mysql.
Подскажите как отправить письмо из скрипта
У меня ссылка c exim на sendmail
sendmail -t user
Пишет не файла /etc/exim/exim.conf
У меня есть конфигурационный файл configure, пытаюсь его подсунуть
ругается что не знает большенство опций.
Подскажите что не так.
Подскажите как отправить письмо из скрипта
У меня ссылка c exim на sendmail
sendmail -t user
Пишет не файла /etc/exim/exim.conf
У меня есть конфигурационный файл configure, пытаюсь его подсунуть
ругается что не знает большенство опций.
Подскажите что не так.
Услуги хостинговой компании 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/
- buryanov
- ст. сержант
- Сообщения: 311
- Зарегистрирован: 2008-04-29 13:41:48
- Откуда: Харьков
- Контактная информация:
Re: Подскажите как отправить письмо из скрипта
В этой статье описан процесс установки. У вас сперва должен запустится почтовый сервер.
Затем можно добавить такую строку в ваш скрипт:и письмо уйдёт.
Затем можно добавить такую строку в ваш скрипт:
Код: Выделить всё
echo 'test'|mail user@domen.ru
Дмитрий.
buryanov*ukr.net
icq# 118639660; skype: buryanov
buryanov*ukr.net
icq# 118639660; skype: buryanov
- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: Подскажите как отправить письмо из скрипта
не факт что уйдёт потому, что алиас с mail может стоять в /bin/false, посему запускать непосредственно сам exim с пайпом
Z301171463546 - можно пожертвовать мне денег
-
- рядовой
- Сообщения: 36
- Зарегистрирован: 2007-12-07 10:10:28
Re: Подскажите как отправить письмо из скрипта
Извините я наверное не полностью сообщил информацию.
У меня установлен Debian4.
На нем настроен работающий exim+sql+dovecot+fetchmail. Он полностью рабочий, письма отправляются и принимаются по ssl.
Я хочу с этого сервера отправить из командной строки письмо.
У меня ссылка c exim на sendmail
sendmail -t user
Пишет не файла /etc/exim/exim.conf
У меня есть конфигурационный файл configure, пытаюсь его подсунуть
ругается что не знает большенство опций.
команды mail нет.
У меня установлен Debian4.
На нем настроен работающий exim+sql+dovecot+fetchmail. Он полностью рабочий, письма отправляются и принимаются по ssl.
Я хочу с этого сервера отправить из командной строки письмо.
У меня ссылка c exim на sendmail
sendmail -t user
Пишет не файла /etc/exim/exim.conf
У меня есть конфигурационный файл configure, пытаюсь его подсунуть
ругается что не знает большенство опций.
команды mail нет.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Подскажите как отправить письмо из скрипта
Код: Выделить всё
#!/usr/bin/perl
open (SENDMAIL, "|/usr/local/sbin/sendmail -t")
or die "sendmail not ready";
print SENDMAIL "From: John Doe <i\@x0.org.ua\n";
print SENDMAIL "To: Frank Smith <rtyug\@ukr.net>\n";
print SENDMAIL "Reply-To: Frank Smith <rtyug\@ukr.net>\n";
print SENDMAIL "Subject: Test.\n\n";
print SENDMAIL "It`s just test!!!";
close (SENDMAIL) or warn "sendmail didn`t close nicely";
-
- рядовой
- Сообщения: 36
- Зарегистрирован: 2007-12-07 10:10:28
Re: Подскажите как отправить письмо из скрипта
Не получается. Скрипт выполняется, но ни какого сообщения не появляется. Письмо не приходит. В логах тоже пусто.
-
- проходил мимо
Re: Подскажите как отправить письмо из скрипта
Код: Выделить всё
<?php
.....................
$command = "/usr/bin/sendEmail -f \"office.company.ru <office@company.ru>\" ".
"-t \"$user <$mail>\" -u \"С Днем Рождения!\" -s smtp.company.ru " .
"-m \"$text\" -o message-charset=utf-8 -q";
system($command, $err);
?>
-
- рядовой
- Сообщения: 36
- Зарегистрирован: 2007-12-07 10:10:28
Re: Подскажите как отправить письмо из скрипта
Я так понимаю это код для html. В любом случае у меня нет файла sendemail. Есть только ссылка на exim с sendmail.
-
- рядовой
- Сообщения: 36
- Зарегистрирован: 2007-12-07 10:10:28
Re: Подскажите как отправить письмо из скрипта
Народ ну не ужели ни кто не отправляет служебные сообщения с компьютера где установлен почтовый сервер на exim!
-
- проходил мимо
Re: Подскажите как отправить письмо из скрипта
Обратите внимание на регистр букв и посмотрите тут http://caspian.dotconf.net/menu/Software/SendEmail/mouze47 писал(а):Я так понимаю это код для html. В любом случае у меня нет файла sendemail. Есть только ссылка на exim с sendmail.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Подскажите как отправить письмо из скрипта
Код: Выделить всё
#!/usr/bin/perl
use IO::Socket;
my $socket = IO::Socket::INET->new ("193.201..:25");
defined $socket or die "ERROR: $!";
$socket->print ("EHLO1512");
$r = <$socket>;
$socket->print ("MAIL FROM:<admin\@x00.org.ua>1512");.
$r = <$socket>;
$socket->print ("RCPT TO:<xxxxxx\@x00.org.ua>1512");
$r = <$socket>;
$socket->print ("DATA1512");
$r = <$socket>;
$socket->print ("From:John Doe<admin\@x00.org.ua>\n
To:Frank Smith<xxxxxx\@x00.org.ua>\n
Subject:Test. \n\n
It's just test!!!1512");
$r = <$socket>;
$socket->print ("\.1512");
$r = <$socket>;
$socket->print ("QUIT1512");
$r = <$socket>;
-
- рядовой
- Сообщения: 36
- Зарегистрирован: 2007-12-07 10:10:28
Re: Подскажите как отправить письмо из скрипта
Спасибо за скрипт. Но при отправке в логах екзима пишет след. ошибку
2009-09-10 15:35:44 SMTP protocol synchronization error (input sent without waiting for greeting): rejected connection from H=IP input="EHLO1512"
Что это за 1512?
2009-09-10 15:35:44 SMTP protocol synchronization error (input sent without waiting for greeting): rejected connection from H=IP input="EHLO1512"
Что это за 1512?
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Подскажите как отправить письмо из скрипта
вот из программы, поменяй там значения
Код: Выделить всё
my $self = shift;
my @smtp_out = ();
use IO::Socket;
my $socket = IO::Socket::INET->new( PeerAddr => 'localhost:smtp(25)' )
or die "ERROR: $!";
my $answer_data;
sysread $socket, $answer_data, 255;
$smtp_out[0] = "1: $answer_data";
syswrite $socket, "helo $self->{'se'}->{'smtp_server'}\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[1] = "2: $answer_data";
syswrite $socket, "mail from:<$self->{'se'}->{'mail_from'}>\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[2] = "3: $answer_data";
syswrite $socket, "rcpt to:<$self->{'p'}->{'email_smtp'}>\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[3] = "4: $answer_data";
syswrite $socket, "data\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[4] = "5: $answer_data";
syswrite $socket, "$self->{'se'}->{'text_new_mailbox'}\r\n";
syswrite $socket, ".\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[5] = "6: $answer_data";
syswrite $socket, "quit\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[7] = "7: $answer_data";
close $socket;
-
- рядовой
- Сообщения: 36
- Зарегистрирован: 2007-12-07 10:10:28
Re: Подскажите как отправить письмо из скрипта
Что не так в скрипте.
Ругается
scripts# ./send_mail
syntax error at ./send_mail line 12, near "$smtp_out"
syntax error at ./send_mail line 17, near "$smtp_out"
syntax error at ./send_mail line 22, near "$smtp_out"
syntax error at ./send_mail line 33, near "sysread"
Missing right curly or square bracket at ./send_mail line 43, within string
Execution of ./send_mail aborted due to compilation errors.
/scripts# cat send_mail
#!/usr/bin/perl
my $self = shift;
my @smtp_out = ();
use IO::Socket;
my $socket = IO::Socket::INET->new( PeerAddr => "192.168.1.222:2525" ) or die "ERROR: $!";
my $answer_data;
sysread $socket, $answer_data, 255;
$smtp_out[0] = "1: $answer_data";
syswrite $socket, "helo $self->{'se'}->{"192.168.1.222"}\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[1] = "2: $answer_data";
syswrite $socket, "mail from:<$self->{'se'}->{"user@domen.ru"}>\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[2] = "3: $answer_data";
syswrite $socket, "rcpt to:<$self->{'p'}->{"user@domen.ru"}>\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[3] = "4: $answer_data";
syswrite $socket, "data\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[4] = "5: $answer_data";
syswrite $socket, "$self->{'se'}->{"test"}\r\n";
syswrite $socket, ".\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[5] = "6: $answer_data";
syswrite $socket, "quit\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[7] = "7: $answer_data";
close $socket;
Ругается
scripts# ./send_mail
syntax error at ./send_mail line 12, near "$smtp_out"
syntax error at ./send_mail line 17, near "$smtp_out"
syntax error at ./send_mail line 22, near "$smtp_out"
syntax error at ./send_mail line 33, near "sysread"
Missing right curly or square bracket at ./send_mail line 43, within string
Execution of ./send_mail aborted due to compilation errors.
/scripts# cat send_mail
#!/usr/bin/perl
my $self = shift;
my @smtp_out = ();
use IO::Socket;
my $socket = IO::Socket::INET->new( PeerAddr => "192.168.1.222:2525" ) or die "ERROR: $!";
my $answer_data;
sysread $socket, $answer_data, 255;
$smtp_out[0] = "1: $answer_data";
syswrite $socket, "helo $self->{'se'}->{"192.168.1.222"}\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[1] = "2: $answer_data";
syswrite $socket, "mail from:<$self->{'se'}->{"user@domen.ru"}>\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[2] = "3: $answer_data";
syswrite $socket, "rcpt to:<$self->{'p'}->{"user@domen.ru"}>\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[3] = "4: $answer_data";
syswrite $socket, "data\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[4] = "5: $answer_data";
syswrite $socket, "$self->{'se'}->{"test"}\r\n";
syswrite $socket, ".\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[5] = "6: $answer_data";
syswrite $socket, "quit\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[7] = "7: $answer_data";
close $socket;
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Подскажите как отправить письмо из скрипта
Код: Выделить всё
use IO::Socket;
my $self;
my @smtp_out;
$self->{'se'}->{'smtp_server'} = 'bla';
$self->{'se'}->{'mail_from'} = 'bla';
$self->{'p'}->{'email_smtp'} = 'bla';
$self->{'se'}->{'text_new_mailbox'} = 'bla';
my $socket = IO::Socket::INET->new( PeerAddr => 'localhost:smtp(25)' )
or die "ERROR: $!";
my $answer_data;
sysread $socket, $answer_data, 255;
$smtp_out[0] = "1: $answer_data";
syswrite $socket, "helo $self->{'se'}->{'smtp_server'}\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[1] = "2: $answer_data";
syswrite $socket, "mail from:<$self->{'se'}->{'mail_from'}>\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[2] = "3: $answer_data";
syswrite $socket, "rcpt to:<$self->{'p'}->{'email_smtp'}>\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[3] = "4: $answer_data";
syswrite $socket, "data\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[4] = "5: $answer_data";
syswrite $socket, "$self->{'se'}->{'text_new_mailbox'}\r\n";
syswrite $socket, ".\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[5] = "6: $answer_data";
syswrite $socket, "quit\r\n";
sysread $socket, $answer_data, 255;
$smtp_out[7] = "7: $answer_data";
close $socket;
print "### Status ###";
print "@smtp_out\n\n";
-
- рядовой
- Сообщения: 36
- Зарегистрирован: 2007-12-07 10:10:28
Re: Подскажите как отправить письмо из скрипта
ProFTP
Спасибо большое за скрипт. Он рабочий.
Только, в полученном письме почему то не отображается От, Кому и тема письма. Тему я в письме не указал, только не знаю как.
Вот заголовок письма
X-Account-Key: account2
X-UIDL: 0000082d478f5088
X-Mozilla-Status: 1001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Return-path: <user@domen.ru>
Envelope-to: user@domen.ru
Delivery-date: Fri, 11 Sep 2009 09:29:29 +0400
Received: from localhost ([127.0.0.1])
by domain.ru with smtp (Exim 4.68)
(envelope-from <user@domen.ru>)
id 1MlyhA-0003sY-J3
for user@domen.ru; Fri, 11 Sep 2009 09:29:29 +0400
Я не силен в perl, если не сложно подскажи как с этим письмом отправить вложеный файл.
И еще как можно из командной строки передать адресат, т.е.
send_mail user@domen
Спасибо большое за скрипт. Он рабочий.
Только, в полученном письме почему то не отображается От, Кому и тема письма. Тему я в письме не указал, только не знаю как.
Вот заголовок письма
X-Account-Key: account2
X-UIDL: 0000082d478f5088
X-Mozilla-Status: 1001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Return-path: <user@domen.ru>
Envelope-to: user@domen.ru
Delivery-date: Fri, 11 Sep 2009 09:29:29 +0400
Received: from localhost ([127.0.0.1])
by domain.ru with smtp (Exim 4.68)
(envelope-from <user@domen.ru>)
id 1MlyhA-0003sY-J3
for user@domen.ru; Fri, 11 Sep 2009 09:29:29 +0400
Я не силен в perl, если не сложно подскажи как с этим письмом отправить вложеный файл.
И еще как можно из командной строки передать адресат, т.е.
send_mail user@domen
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: Подскажите как отправить письмо из скрипта
я вложенный не отправлял, можешь поискать в гугле