从Linux中的C/C ++程序发送电子邮件[英] sending an email from a C/C++ program in linux

本文是小编为大家收集整理的关于从Linux中的C/C ++程序发送电子邮件的处理方法,想解了从Linux中的C/C ++程序发送电子邮件的问题怎么解决?从Linux中的C/C ++程序发送电子邮件问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想每次模拟结束时都会将电子邮件发送到我的Gmail帐户.我已经尝试搜索网络并找到 sendemail ,但这是时间的.如果有人可以将我指向他们尝试的包或链接,我将感谢.

谢谢

推荐答案

您可以直接使用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]);
}

其他推荐答案

libesmtp 似乎是您正在寻找的东西.它的记录很好,而且似乎也在积极发展中(上次发行候选人是2012年1月中旬).它还支持SSL和各种身份验证协议.

源软件包中有示例应用程序.

其他推荐答案

der vmime libcurl 是电子邮件发送(以及更多)的好库.

本文地址:https://www.itbaoku.cn/post/359015.html