目标是在类似于php的Unix机器上发送电子邮件,就像
mail
函数一样。在StackOverflow上,我已经找到了一个可以做到这一点的函数,但也许有人可以提出一个更优雅的解决方案或者一个不需要使用fprintf
和fwrite
的解决方案?因为我在我的C ++程序中没有使用printf
:#include<stdio.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\n", to);
fprintf(mailpipe, "From: %s\n" from);
fprintf(mailpipe, "Subject: %s\n\n", subject);
fwrite(message, 1, strlen(message), mailpipe);
fwrite(".\n", 1, 2, mailpipe);
pclose(mailpipe);
retval = 0;
}
else
{
perror("Failed to invoke sendmail”);
}
return retval;
}