C에서 mutt를 자동화하려고 합니다. mutt에서 첨부 파일이 포함된 메일을 보내려면 다음을 사용할 수 있습니다. 그러나 이 C 프로그램을 사용하여 동일한 작업을 자동화할 경우:echo "what_you_want_to_print_in_body" | mutt -s "Subject" -a "file_path" -- [email protected]
#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;
}
오류 메시지가 나타납니다.
Can't stat %s: No such file or directory
%s: unable to attach a file.
여기서 이 질문을 하는 이유는 내 system() 스크립트가 작동하는지 여부와 그렇지 않은 경우 이 작업을 어떻게 자동화해야 하는지에 관심이 있기 때문입니다.
답변1
헤더가 누락되었으며 이를 포함하면 컴파일러가 라이브러리 함수가 문자열인 단일 인수만 취한다고 <stdlib.h>
알려주는 것을 알 수 있습니다 .system()
사용자 제공 데이터를 삭제하려고 시도하지 않았습니다. [email protected]"; rm -rf /; : "
수신자(또는 이와 유사한 것)로 입력하면 잘 끝나지 않습니다. 이렇게 하지 마십시오.
system()
사용자 제공 데이터 사용 시 입력 검증 및 악용 방지딱딱한.