You could invoke your local MTA directly using popen()
and feed it RFC822-compliant text.
#include <stdio.h>
#include <string.h>
#include <errno.h>
int sendmail(const char *to, const char *from, const char *subject, const char *message)
{
int retval = -1;
FILE *mailpipe = popen("/usr/lib/sendmail -t", "w");
if (mailpipe != NULL) {
fprintf(mailpipe, "To: %s
", to);
fprintf(mailpipe, "From: %s
", from);
fprintf(mailpipe, "Subject: %s
", subject);
fwrite(message, 1, strlen(message), mailpipe);
fwrite(".
", 1, 2, mailpipe);
pclose(mailpipe);
retval = 0;
}
else {
perror("Failed to invoke sendmail");
}
return retval;
}
main(int argc, char** argv)
{
int i;
printf("argc = %d
", argc);
for (i = 0; i < argc; i++)
printf("argv[%d] = "%s"
", i, argv[i]);
sendmail(argv[1], argv[2], argv[3], argv[4]);
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…