Я просто задаюсь вопросом, как я могу послать электронное письмо с помощью C? Я Погуглил его немного, но ничто не мог найти надлежащим.
В Unix-подобных системах вы можете использовать system
и sendmail
следующим образом:
#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;
}
Я знаю, что это уродливо, и есть несколько более эффективных способов сделай это ... но это работает :)
Наиболее очевидные варианты:
system()
для вызова существующего инструмента командной строки для отправки почты. Не очень переносимо (требуется внешний инструмент с заданным синтаксисом вызова и т.д.), но очень легко реализуемо. Вы также можете использовать команду mail.
Внутри программы C с помощью команды mail и системной функции вы можете отправлять почту пользователю.
system("mail -s subject address < filename")
Example
system ("mail -s test hello@gmail.com < filename")
Примечание: файл должен существовать. Если вы хотите ввести содержимое, yiu может ввести содержимое внутри файла, а затем отправить этот файл получателю.
Запустите sendmail
и передайте сообщение электронной почты на стандартный ввод (в unix-подобных системах) или используйте клиентскую библиотеку SMTP. для подключения к почтовому серверу SMTP.