Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Perl (http://www.flasher.ru/forum/forumdisplay.php?f=21)
-   -   Очень нужен скрипт для отправки сообщений без вызова почтовика. (http://www.flasher.ru/forum/showthread.php?t=41636)

Laser 08.01.2003 10:58

Очень нужен скрипт для отправки сообщений без вызова почтовика.
 
Очень нужен скрипт для отправки сообщений с полей формы, без вызова почтовой программы. :( Только рабочий.
Спасибо.

Crazy 08.01.2003 19:19

Скачай с CPAN модуль для работы с SMTP.

Laser 09.01.2003 01:06

А где взять этот CPAN?
 
...

Crazy 09.01.2003 02:48

Вообще, я не вижу смысла работать с Perl, не зная, что такое CPAN: www.cpan.org

Alex V. White 09.01.2003 16:22

Он тебе еще нужен?
 
Если я правильно тебя понял - дела такие:
юзвер заходит на сайт, заполняет поля формы, жмет "ОТПРАВИТЬ" и эта вся лабуда улетает на мыло (без запуска почтовой программы).
Все верно? Дык это пишется в пять сек. Если что - намылю.

Crazy 09.01.2003 16:28

Обрати внимание: без использования почтовой программы.

Sendmail -- почтовая программа. :)

Alex V. White 09.01.2003 16:43

Я вот и спрашиваю, все таки он наверное имел в виду без оутлука. Если не так - расскажи а нафига эти заморочки, чем сендмал не устраивает?

Crazy 09.01.2003 16:50

Если человек не может сформулировать даже свою потребность, то ему определенно рано мучить Perl. :)

Alex V. White 09.01.2003 17:55

Всемя конечностями за!
Хотя может по неопытности еще неясно изЪясняется.
Вот только чЁ вопрошающий молчит?
Ты все таки скажи - а нафиг в формах юзать смтп? Вот где вопрос. Интересно. Век живи - век учись. Может прогодится.

Crazy 09.01.2003 18:12

Цитата:

Оригинал написал(а) Alex V. White
а нафиг в формах юзать смтп?
Если граничным условием стоит неиспользование sendmail то других разумных вариантов просто не остается.

Кроме того, непосредственная работа с SMTP позволяет отследить доставку письма.

Alex V. White 09.01.2003 18:21

Спасибо!
 
Коротко и ясно!

Laser 11.01.2003 10:10

Господа, я не молчу, я был на работе.
 
Я нашел один "англоязычный" скрипт для отпрвавки почты без вызова почтового клиента. Настроил, работает. Беда только в том что он берет сообщения только с полей от кого -"subject" и откуда "email". Как настроить его для сбора информации с других полей что бы отправлять само сообщение непонятно. Я имею ввиду приходят пустые письма в которых только указывается от кого и от откуда.
Может подскажите как добавить обработку и других полей?
Вот скрипт:
#!/usr/bin/perl
#######################################################
#-----------------------------------------------------#
# BS Form (version 1.3) #
#-----------------------------------------------------#
# Copyright 1999 Brian Stanback All Rights Reserved. #
# #
# Email: webmaster@stanback.net #
# Webpage: http://www.stanback.net #
#-----------------------------------------------------#
# You are free to change this script in any way you #
# want, as long as the copyright and this message #
# remain intact. I will not be held responsable for #
# any damage this script may cause. If you use this #
# script I would appreciate a link back to my site #
# (stanback.net). Enjoy! :-) #
#######################################################

# This is a simple form which will take in a users name,
# email, phone number, message, and message subject and
# email it to you. It can read from a file and automatically
# send it to the user. Script does not require SSI.

#########################
# Declare the variables #
#########################

$mailprogram = "/usr/sbin/sendmail";
# Sendmail

$myemail = 'logo17@yandex.ru';

@required = ('email','subject');
# Required Fields

$auto_response = "False";
# Do you want an autoresponse?
# True = yes and False = no

$auto_response_file = "response.txt";
# File with the message you want to give the user
# automatically when (s)he sends the form.

#####################################################
# You don't need to change anything below this line #
#####################################################

# Parse the form
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/\;//g;
$value =~ s/\|//g;
$value =~ s/\</&gt;/g;
$value =~ s/\>/&lt;/g;
$FORM{$name} = $value;
}
$FORM{'email'} =~ s/^([^ ]+) (.*)/$1/g;

# Check for all required fields
foreach $check(@required)
{
unless ($FORM{$check})
{
print "Content-type: text/html\n\n";
print "<html>\n<head>\n<title>Missing Information</title>\n</head>\n";
print "<body bgcolor=\"#000000\" text=\"#FFFFFF\">\n<div align=\"center\">\n";
print "<h2>Missing Information</h2><hr>\n";
print "<STRONG>Sorry, please fill out the $check field. Go back and try again.</STRONG>\n</div>\n";
print "</body>\n</html>\n";
exit;
}
}

# Check the users email
if ($FORM{'myemail'})
{
unless ($FORM{'myemail'} =~ /\w+@\w+.\w+/)
{
print "Content-type: text/html\n\n";
print "<html>\n<head>\n<title>Bad E-mail</title>\n</head>\n";
print "<body bgcolor=\"#000000\" text=\"#FFFFFF\">\n<div align=\"center\">\n";
print "<h2>Bad E-mail</h2><hr>\n<STRONG>The e-mail address that the user of this \n";
print "script entered is invalid. Please contact them.</strong>\n";
print "</div>\n</body>\n</html>";
exit;
}
}

# Check the senders email
if ($FORM{'email'})
{
unless ($FORM{'email'} =~ /\w+@\w+.\w+/)
{
print "Content-type: text/html\n\n";
print "<html>\n<head>\n<title>Bad E-mail</title>\n</head>\n";
print "<body bgcolor=\"#000000\" text=\"#FFFFFF\">\n<div align=\"center\">\n";
print "<h2>Bad E-mail</h2><hr>\n<STRONG>The e-mail address that you've\n";
print "entered, $FORM{'email'}, is invalid. How would I ever contact you? Go back and try again.</STRONG>\n";
print "</div>\n</body>\n</html>";
exit;
}
}

# Send me the email
open (MAIL,"|$mailprogram -t");
print MAIL "To: $myemail\n";
print MAIL "From: <$FORM{'email'}> $FORM{'name'}\n";
print MAIL "Subject: $FORM{'subject'}\n\n";
foreach $line ($FORM{'info'})
{
print MAIL "$line";
}
print MAIL "\n\n--\n$FORM{'name'}\n";
print MAIL "$FORM{'phone'}";
close MAIL;

# Send user an autoresponse.
if ($auto_response =~ /True/i && $FORM{'email'})
{
open (MAIL,"|$mailprogram -t");
print MAIL "To: $FORM{'name'} <$FORM{'email'}>\n";
print MAIL "From: $myemail\n";
print MAIL "Subject: Re: $FORM{'subject'}\n\n";
print MAIL "This is an autoresponse notifying you that your email has indeed been received. I shall be contacting you shotly.\n\n";
foreach $line ($FORM{'info'})
{
print MAIL ">$line";
}
close MAIL;
}

# Print thank you message to the user.
print "Content-type: text/html\n\n";
print "<html>\n<head>\n<title>Thank you!</title>\n</head>\n";
print "<body bgcolor=\"#000000\" text=\"#FFFFFF\">\n";
print "<div align=\"center\"><h2>Thank you!</h2><hr>\n<STRONG>I have received your information \n";
print "and will get back to you asap.\n";
if ($auto_response =~ /True/i && $FORM{'email'})
{
print "You should receive an autoresponse shortly.<p>\n";
}
print "</STRONG></div>\n</body>\n</html>";

Скрипт могу выслать на мыло.
Спасибо.


Часовой пояс GMT +4, время: 23:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.