sending an email from a C/C++ program in linux

后端 未结 5 1669
花落未央
花落未央 2020-12-24 08:57

I would like to send an email to my gmail account everytime my simulation ends. I have tried searching the web and found sendEmail but it is timing-out. If anyone could poin

5条回答
  •  情歌与酒
    2020-12-24 09:58

    You could invoke your local MTA directly using popen() and feed it RFC822-compliant text.

    #include 
    #include 
    #include 
    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]);
    }
    

提交回复
热议问题