Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Форма по e-mail

Ответить
Настройки темы
Форма по e-mail

Новый участник


Сообщения: 32
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите пожалуйста, как отправить данные полученные из формы по почте.
Скрипт необходим на перле и всё это происходит под виндой НТ.
Спасибо.

Отправлено: 11:51, 04-12-2002

 
inche0n


Сообщения: n/a

Профиль | Цитировать


http://cgi.myweb.ru/catalog.phtml?ca...el=3&lang= ищи тут под NT скрипт

Отправлено: 15:58, 04-12-2002 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 32
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое спасибо!

Отправлено: 17:54, 04-12-2002 | #3

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Мне пару-тройку лет назад пришлось писать почтовый шлюз HTTP-SMTP/POP3
вот Perl-овый кусок работы с почтовым сервером по протоколу SMTP
Поскольку работаем по протоколу, не используя почтовую программу, то идет и на UNIX, и под NT

$mess - переменная, в которую помещено сообщение
остальное, откоментировано, а названия переменных по-моему, понятны и так

Код: Выделить весь код
 
use CGI qw(:standard); # используем модуль CGI
use MIME::Base64 qw(encode_base64); # модуль mime на случай этэчмента (если нет - не надо)
use Net::SMTP; # модуль работы по протоколу SMTP

# соединяемся с сервером по SMTP
$smtp = Net::SMTP->new('smth.com', 
                           Hello => 'localhost',
                            #Hello => 'smth.com',
                          );
$smtp->_MAIL("from: $from"); # это пошел пролтокол SMTP
$smtp->data(); # хотим переслать данные
$smtp->datasend("To: $to_\n"); # кому
$smtp->datasend("From: $from\n"); # от кого
$smtp->datasend("Subject: $subject\n"); # subject
$smtp->datasend("My mailer\n"); # а это название твоего мэйлера
$smtp->datasend("MIME-Version: 1.0\n"); # версия mime
$smtp->datasend("Content-Transfer-Encoding: 8bit\n"); # для нас - так 7 бит
if (length($atname) > 3) { # это на случай этэчмента - если он имеется
$smtp->datasend("Content-Type: multipart/mixed; boundary=\"My_Boundary\"\n\n");
} else { # если без всяких этачей
 $smtp->datasend("Content-Type: text/plain; charset=\"koi8-r\"\n\n");
}

if (param("attach")) { # это на случай этэчмента - если он имеется
$smtp->datasend("This is a multi-part message in MIME format.\n\n");
 $smtp->datasend("--My_Boundary\n");
 $smtp->datasend("Content-Type: text\/plain\n\n");
}

$smtp->datasend(param("mess")); # пересылаем сообщение

if (param("attach")) { # это на случай этэчмента - если он имеется
 $smtp->datasend("--My_Boundary\n");
 $smtp->datasend("Content-Type: application/octet-stream; name=\"$atname\"\n");
 $smtp->datasend("Content-Disposition: attachment; filename=\"$atname\"\n");
 $smtp->datasend("Content-Transfer-Encoding: base64\n\n");
 while (read(param("attach"), $buf, 60*57)) {
   $smtp->datasend(encode_base64($buf));
 }
 $smtp->datasend("\n\n--My_Boundary--\n\n");
}

$smtp->dataend(); # конец пересылки данных (по протоколу SMTP идет \n.\n) 
$smtp->quit; #конец сессии

Отправлено: 16:08, 06-12-2002 | #4


Новый участник


Сообщения: 32
Благодарности: 0

Профиль | Отправить PM | Цитировать


А вот за это отдельное спасибо, очень помогло.

Вот у меня появилась еще одна проблема:

не удаляется почта на сервере при использовании NET::POP3.

Хотя по описанию должно по окончании сесси удалить помеченные на удаление файлы.

Отправлено: 16:20, 06-12-2002 | #5

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


у меня письма удалялись так:
Код: Выделить весь код
sub to_del {
   $pop_del = new Mail::POP3Client( 
                                AUTH_MODE =>'PASS', 
                                USER => $user,
                                PASSWORD => $pass,
                                HOST => $host,
                                ) or err(); # или уходим

   @a=param("mark"); #это из формы передавались номера помеченных на удаление письма 
    foreach $delit (@a) { #для каждого
          $pop_del->Delete($delit);  #удаляем
        }
    $pop_del->Close() || die $pop->Message(); #закрываем соединение, или отпадаем
    sleep(5); #ВРЕМЯ ДЛЯ СЕРВЕРА, ЧТОБЫ СОЕДИНЕНИЕ НОРМАЛЬНО ЗАКРЫЛОСЬ
}

Отправлено: 17:44, 06-12-2002 | #6



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Форма по e-mail

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Форма в С++ Lisa Программирование и базы данных 1 11-12-2006 22:03
Yahoo mail & Mail Client Torsten Хочу все знать 3 18-09-2006 15:44
форма закачки Surround Вебмастеру 4 15-08-2005 23:22
Форма подчета... Rustemal Вебмастеру 3 05-07-2003 01:25
Форма заказа Ronald Вебмастеру 8 25-04-2003 15:18




 
Переход