Erro ao tentar automatizar o mutt usando C

0

Estou tentando automatizar o mutt em C. Para enviar um email com anexo no mutt, é possível usar: echo "what_you_want_to_print_in_body" | mutt -s "Subject" -a "file_path" -- [email protected] , mas quando eu automatizar o mesmo usando este programa C:

#include<stdio.h>
int main()
{
char echo_message[1000];
char path[1000];
char subject[1000];
char recepient[1000];

printf("Enter your mail message: ");
gets(echo_message);
printf("Enter the path: ");
gets(path);
printf("Enter the subject: ");
gets(subject);
printf("Enter the recipient address: ");
gets(recepient);

system("echo \"%s\" | mutt -s \"%s\" -a \"%s\" -- \"%s\"", &echo_message, &subject, &path, &recepient);

return 0;
}

Recebo um erro dizendo:

Can't stat %s: No such file or directory
%s: unable to attach a file.

Eu fiz esta pergunta aqui porque minha preocupação era se meu script system () é válido, se não como devo proceder para automatizar essa tarefa.

    
por mie.ppa 24.09.2017 / 13:40

1 resposta

1

Você não tem o cabeçalho <stdlib.h> e, incluindo-o, você perceberá que o compilador informa que a função da biblioteca system() usa apenas um único argumento, uma string.

Você não tenta limpar os dados fornecidos pelo usuário. Inserindo [email protected]"; rm -rf /; : " (ou algo semelhante) como o destinatário não terminaria bem. Não faça isso.

A validação de entrada e a prevenção de explorações por meio do system() ao usar dados fornecidos pelo usuário é difícil .

Relacionado: link

    
por 24.09.2017 / 13:53

Tags