Упражнение: Опросник Оглавление Упражнение: Модификация программы отправки писем по E-Mail

Программа для отправки писем по E-Mail

В данном параграфе будут рассмотрены функции общего назначения на примере CGI-программы для отправки писем. Часто возникает такая ситуация, когда пользователь зашел на ваш сайт с компьютера, на котором нет электронной почты, но ему необходимо написать вам письмо. На этот случай на сервере удобно иметь веб-интерфейс, который позволит такому пользователю написать и отправить вам письмо. Ниже приведена простейшая HTML-форма такого веб-интерфейса.

email
subj
// HTML-код формы
<form method=post action=/cgi-bin/mail>
email <input type=text name=email><br>
subj  <input type=text name=subj><br>
<textarea name="text" cols="45" rows="6"></textarea>
<input type=submit>
</form>

// Текст такой программы тоже предельно простой
#include <itcgi.h>


int main()
{
LString* subj = CreateString();
LString* email = CreateString();
LString* text = CreateString();


// считываем тему, адрес отправителя и текст сообщения
GetParamByName("subj", subj);
GetParamByName("email", email);  
GetParamByName("text", text);

// отправляем письмо
mail("itsoft.ru", *email, "igor@itsoft.ru", *subj, *text);

// возвращаемся на эту же страницу
printf("Location: %s\n\n", getenv("HTTP_REFERER"));

//освобождаем память
DeleteString(subj);
DeleteString(email);
DeleteString(text);
return 0;
}


========Makefile========
all: mail 


mail: mail.c itcgi.a
        gcc mail.c -L/usr/local/lib/mysql -I/usr/local/include/mysql \
-L/usr/local/lib -I/usr/local/include \
-o mail -lmysqlclient /usr/lib/itcgi.a -Wall -O3 
        strip mail 
        cp mail /www/members/cgi-bin/mail