我希望每次模拟结束时都会向我的Gmail帐户发送一封电子邮件。我试过在网上搜索并发现sendEmail,但它已超时。如果有人能指出我试过的包裹或链接,我会很感激。
由于
答案 0 :(得分:22)
您可以使用popen()
直接调用本地MTA,并提供符合RFC822的文本。
#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\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;
}
main(int argc, char** argv)
{
int i;
printf("argc = %d\n", argc);
for (i = 0; i < argc; i++)
printf("argv[%d] = \"%s\"\n", i, argv[i]);
sendmail(argv[1], argv[2], argv[3], argv[4]);
}
答案 1 :(得分:4)
libESMTP似乎就是你要找的东西。它的记录很好,似乎也在积极开发中(最新的候选版本是从2012年1月中旬开始)。它还支持SSL和各种身份验证协议。
源包中有示例应用程序。
答案 2 :(得分:2)
答案 3 :(得分:1)
我喜欢上面的trojanfoe的答案,但在我的情况下,我需要打开一个电子邮件发送代理..一个MTA,以使Linux能够发送电子邮件 - 我发现exim4是一个相对简单的MTA才能开始工作trojanfoe的程序非常适合它。
让它工作我用(在虚拟盒子中的debian类型系统(crunchbang linux))
sudo apt-get install exim
sudo apt-get install mailutils
我用
配置了exim4sudo dpkg-reconfigure exim4-config
我告诉计算机我的正常(远程)电子邮件地址
sudo emacs / etc / email-addresses
希望这可能有用,因为这些是我发现的工作,以使我的linux系统发送电子邮件上面的trojanfoe的电子邮件程序
答案 4 :(得分:1)
执行fork exec并将正文传递给sendmail / mail这样的程序:
function processNode(node)
{
collapseNode(myNode); //logic for current node
(treeData.children || []).forEach( function( chidNode ){
processNode( chidNode ); //if there are children invoke the same method for each child node
});
}
processNode( treeData ); //invoke for your treeData