Jak mogę wysłać e-mail do C?


Zastanawiam się tylko, jak mogę wysłać e-mail za pomocą C? Wyszukałem trochę w Google, ale nie mogłem znaleźć nic odpowiedniego.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W systemach typu Unix możesz użyć
system
i
sendmail
w następujący sposób:
#include <stdio.h>
#include <string.h>int main() { char cmd[100];// to hold the command.
char to[] = "sample@example.com";// email id of the recepient.
char body[] = "SO rocks";// email body.
char tempFile[100];// name of tempfile. strcpy(tempFile,tempnam("/tmp","sendmail"));// generate temp file name. FILE *fp = fopen(tempFile,"w");// open it for writing.
fprintf(fp,"%s\n",body);// write body to it.
fclose(fp);// close it. sprintf(cmd,"sendmail %s < %s",to,tempFile);// prepare command.
system(cmd);// execute it. return 0;
}

Wiem, że to jest brzydkie i są na to lepsze sposoby ... ale działa :)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Posługiwać się

libcurl
http://curl.haxx.se/libcurl/... Obsługuje SMTP, a także TLS, na wypadek, gdybyś musiał uwierzytelnić się, aby wysłać.
Oferują

przykładowy kod C.
http://curl.haxx.se/libcurl/c/smtp-tls.html
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz także użyć polecenia mail.
W programie C możesz użyć polecenia mail i funkcji systemowej, aby wysłać wiadomość e-mail do użytkownika.
system("mail -s subject address < filename") Example
system ("mail -s test hello@gmail.com < filename")

Uwaga: plik musi istnieć. Jeśli chcesz wprowadzić zawartość, yiu może wprowadzić zawartość do pliku, a następnie wysłać ten plik do odbiorcy.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Uruchom
sendmail
i wyślij wiadomość e-mail na jego standardowe wejście (w systemach typu unix) lub użyj biblioteki klienta SMTP, aby połączyć się z serwerem poczty SMTP.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Najbardziej oczywisty wybór:
  • Użyj
    system ()
    , aby wywołać istniejące narzędzie wiersza poleceń do wysyłania poczty. Niezbyt przenośny (wymaga zewnętrznego narzędzia z podaną składnią wywołania itp.), Ale bardzo łatwy do zaimplementowania.
  • Użyj jakiejś biblioteki.
  • Wprowadzić w życie SMTP http://en.wikipedia.org/wiki/S ... tocolsiebie i porozmawiaj bezpośrednio z serwerem pocztowym. Dużo pracy.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Bardziej przenośnym sposobem jest użycie

libquickmail

(
http://sf.net/p/libquickmail
http://sf.net/p/libquickmail) na licencji GPL.
Umożliwia nawet wysyłanie załączników.
Przykładowy kod:
quickmail_initialize();
quickmail mailobj = quickmail_create(FROM, "libquickmail test e-mail");
quickmail_set_body(mailobj, "This is a test e-mail.\nThis mail was sent using libquickmail.");
quickmail_add_attachment_file(mailobj, "attachment.zip", NULL);
const char* errmsg;
if ((errmsg = quickmail_send(mailobj, SMTPSERVER, SMTPPORT, SMTPUSER, SMTPPASS)) != NULL)
fprintf(stderr, "Error sending e-mail: %s\n", errmsg);
quickmail_destroy(mailobj);

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się