Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> E-MAIL, Как отправить почту с хостинга 
V
    Опции темы
r
Дата 6.11.2005, 00:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не бейте ногами, но вопрос такой, как мне в скрипте вызвать функцию написанную на PHP.
Дело в том что на хостинге у меня не работает скрипт отсылки почты. В логах такая вот фигня:

################################################
[Sun Nov 6 00:14:28 2005] [error] [client 217.118.66.232] File does not exist: /home/dezz/www/site/public_html/favicon.ico
################################################

И куда только не обращался, там все советуют фун. mail() для PHP.
Был-бы рад если-бы кто подсказал мою ошибку, вот скрипт:
Код

#!/usr/bin/perl -w
use strict;
use CGI qw/:standard/;
my $cgi = new CGI;
my $from = '[email protected]';
my $to = '[email protected]';
my $subject = 'test.';
my $mess = '''test.;
my $bcopy = '';
my $mailprog = '/usr/sbin/sendmail';
print $cgi -> header( -charset => 'Windows-1251' );
print "Поехали!!!";
 open (MAIL, "|$mailprog -t -oi -odq") || die "ERROR $mailprog";
 print MAIL "From: $from\n";
 print MAIL "To: $to\n";
   if ($bcopy ne ""){
     print MAIL "BCC: $bcopy\n";
   }
  print MAIL "Subject: $subject\n";
  print MAIL "Content-Type: text\/plain\n";
  print MAIL "\tCharset=\"windows-1251\"\n";
   print MAIL "\n";
  print MAIL "$mess\n";
   close(MAIL);         



А то так не хочется с PHP заморачиваться. Спасибо.
  Вверх
r
Дата 6.11.2005, 00:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Извиняюсь восьмая строка вот так:
Код

my $mess = 'test.';



  Вверх
sharq
Дата 6.11.2005, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 2
Всего: 28



r
Цитата(r @ 6.11.2005, 01:31)
как мне в скрипте вызвать функцию написанную на PHP.

Вызвать php-функцию в perl-скрипте невозможно. smile Можно выполнить php-скрипт, который вызывает эту функцию.
Вот, например:
Код

<?
 echo "Hello\n";
?>


Код

my $result = `php test.php`;



Цитата(r @ 6.11.2005, 01:31)
В логах такая вот фигня:
################################################
[Sun Nov 6 00:14:28 2005] [error] [client 217.118.66.232] File does not exist: /home/dezz/www/site/public_html/favicon.ico
################################################

Поверь, не из-за этого не работает скрипт отправки почты. smile
Это сообщение указывает, что у тебя нет иконки на сайт - favicon.ico

Цитата(r @ 6.11.2005, 01:31)
И куда только не обращался, там все советуют фун. mail() для PHP.

А зачем тебе php, если все можно сделать на perl (почти все smile).


Цитата(r @ 6.11.2005, 01:31)
Был-бы рад если-бы кто подсказал мою ошибку

Да вроде все нормально. Приведи лог ошибки работы скрипта, а не ошибку отсутствия фавикона. smile

Для отправки писем можешь использовать готовые модули, чтобы не возиться на прямую с sendmail'ом, их очень много на CPAN. Вот некоторые - Mail::Sendmail, MIME::Lite и др.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
r
Дата 13.11.2005, 19:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет sharq, мне админ сказал что-бы отправить письмо нужна smtp авторизация. Посмотрел Mail::Sendmail, там ее почему-то не обнаружил. Попробую конечно, если такой модуль там стоит. В логах ошибок нет кроме приведенной выше. Спасибо.
  Вверх
sharq
Дата 14.11.2005, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 2
Всего: 28



r т.е. тебе нужно отправлять письмо не через sendmail, а через сокеты!
В Mail::Sedmail - есть возможность отправлять письма через сокеты!
Код

my %mail = (
            To      => $email,
            From    => $from,
            Subject => "=\?cp1251\?Q\?$subject\?=",
            ...
);

$mail{Smtp} = "smtp.mail.ru"; # например или через другой smtp-сервер


Посмотри еще модуль Net::SMTP - там на прямую.

Хотя самый удобный вариант отправки писем и писем с аттачем - use MIME::Lite.

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
r
Дата 14.11.2005, 21:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет sharq, на хосте нет такого модуля. Вот админу написал, всяко разно. А в энтом модуле как раз вот этот кусок кода, и усе. А ошибка в логах такая:

Код

Can't locate Mail/Sendmail.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.8.6/mach /usr/local/lib/perl5/site_perl/5.8.6 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.6/BSDPAN /usr/local/lib/perl5/5.8.6/mach /usr/local/lib/perl5/5.8.6 .) at /home/dezz/www/site1/cgi-bin/mail.pl line 3.
BEGIN failed--compilation aborted at /home/dezz/www/site1/cgi-bin/mail.pl line 3.
[Mon Nov 14 21:33:23 2005] [error] [client 217.118.66.232] Premature end of script headers: /home/dezz/www/site1/cgi-bin/mail.pl

А вот код, скорее неправильный.
Код

#!/usr/bin/perl -w
use strict;
use Mail::Sendmail;
use CGI::Carp 'fatalsToBrowser';
use CGI qw/:standard/;

 %mail = ( To      => '[email protected]',
            From    => '[email protected]',
            Message => "This is a test message"
           );

  sendmail(%mail) or die $Mail::Sendmail::error;

  print "OK. Log says:\n", $Mail::Sendmail::log;

exit(0);       



Ну, вот такие дела, пиши.

P.s. Как у Вас тут все строго smile , наверное korob2001 попадет. Не люблю начальства. smile

Это сообщение отредактировал(а) korob2001 - 15.11.2005, 10:00
  Вверх
r
Дата 17.11.2005, 06:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Все, решилось вот код:
Код

sub email{
  my($to, $from, $mess, $bcopy)=@_;  
 my $mailprog="/usr/sbin/sendmail -t";
  open (MAIL, "|$mailprog");
print MAIL "From: $from\n";
print MAIL "To: $to\n";
print MAIL "Subject: Заказ\n";
print MAIL "Content-type:text/html\n\n";
print MAIL "<html>\n";
print MAIL " <body>\n";
print MAIL "$mess\n";
print MAIL " </body>\n";
print MAIL "</html>\n";
close(MAIL);
};

работает. Спасибо Всем.
  Вверх
korob2001
Дата 17.11.2005, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Эх r, был бы ты зерегестрирован, я бы тебе сейчас плюс в репу влепил бы, за то, что сам решил свою проблему. Единственное, что я тебе посоветовал бы сделать, так это ставить сообщения в очередь.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
r
Дата 18.11.2005, 23:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Извините виноват, из деревни боковат smile , а в очередь ставить энто как?
  Вверх
korob2001
Дата 19.11.2005, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61





--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
r
Дата 19.11.2005, 07:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.