URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 5850
[ Назад ]

Исходное сообщение
"Как послать mail из C-программы?"

Отправлено ukv , 28-Фев-01 16:34 
Нужно отправить письмо из С-программы. Слышал, что можно как-то это сделать через pipe (об этом имею смутное представление) как привязать pipe к  sendmail?
Пошел по более простому пути - вызываю из программы mail (execl'ом) и пытаюсь подать ему на стандартный вход файл, который содержит текст сообщения, но переназначение не получается, т.к. параметры вида "< file" воспринимаются mail'ом как адреса и приводят к ошибке. Как переназначить ввод изнутри программы?
Или я вообще иду не той дорогой?

Подскажите пожалуйста.


Содержание

Сообщения в этом обсуждении
"RE: Как послать mail из C-программы?"
Отправлено Z0termaNN , 28-Фев-01 17:37 
да здесь pipe собственно говоря не нужен.
достаточно передать текст сообщения на стандартный ввод примерно следующим образом:


close(0); /* or fclose(stdin); */
fd=open("file",O_RDONLY);
char *arg[] = {"-s", "subject text",
"person@somewhere",NULL};
execl("/bin/mail",arg); /* or sendmail */

а то что конструкция типа "< file" воспринимается
как адрес - совершенно правильно, т.к. это применимо только к shell, который с этой конструкцией сам и разбиратеся