Нужно отправить письмо из С-программы. Слышал, что можно как-то это сделать через pipe (об этом имею смутное представление) как привязать pipe к sendmail?
Пошел по более простому пути - вызываю из программы mail (execl'ом) и пытаюсь подать ему на стандартный вход файл, который содержит текст сообщения, но переназначение не получается, т.к. параметры вида "< file" воспринимаются mail'ом как адреса и приводят к ошибке. Как переназначить ввод изнутри программы?
Или я вообще иду не той дорогой?Подскажите пожалуйста.
да здесь 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, который с этой конструкцией сам и разбиратеся