Мне просто интересно, как я могу отправить электронное письмо с помощью C? Я немного погубил, но не смог найти ничего подходящего.Как отправить электронное письмо на C?
ответ
Запустите sendmail
и отправьте электронное письмо на его стандартный вход (в unix-подобных системах) или используйте некоторую клиентскую библиотеку SMTP для подключения к почтовому серверу SMTP.
Наиболее очевидный выбор:
- Использование
system()
вызвать существующий инструмент командной строки для отправки почты. Не очень портативный (требуется внешний инструмент с заданным синтаксисом вызова и т. Д.), Но очень прост в реализации. - Используйте некоторую библиотеку.
- Внесите SMTP самостоятельно и поговорите непосредственно с почтовым сервером. Много работы.
Действительно, я хочу узнать, как реализовать SMTP самостоятельно, как вы упомянули в своем третьем варианте. Вы знаете какой-либо связанный учебник, статью или исходный код? – mehmet6parmak
В будущем попробуйте не рекомендовать system() и вместо этого exec() семейство функций. –
@rogue: Спасибо. Но system() более портативен, exec *() - это только Unix. – unwind
В Unix подобных системах вы можете использовать system
и sendmail
следующим образом:
#include <stdio.h>
#include <string.h>
int main() {
char cmd[100]; // to hold the command.
char to[] = "[email protected]"; // 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;
}
Я знаю, что его уродливым и Есть несколько более эффективных способов сделать это ... но это работает :)
Вы также можете использовать почтовую команду.
Внутри программы C, используя почтовую команду и системную функцию, вы можете отправить почту пользователю.
system("mail -s subject address < filename")
Example
system ("mail -s test [email protected] < filename")
Примечание: Файл должен существовать. Если вы хотите ввести контент, yiu может ввести содержимое внутри файла, а затем отправить этот файл получателю.
Использовать libcurl. Он поддерживает SMTP, а также TLS, если вам нужно пройти аутентификацию для отправки. Они предлагают некоторые example C code.
Более портативный способ заключается в использовании libquickmail (http://sf.net/p/libquickmail), имеющего лицензию под GPL. Он даже позволяет отправлять вложения.
Пример кода:
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);
- 1. Отправить электронное письмо от C#
- 2. Как отправить электронное письмо
- 3. Как отправить электронное письмо?
- 4. C# WPF - Как отправить электронное письмо (себе)?
- 5. Как отправить электронное письмо с C++
- 6. Как отправить электронное письмо от C# .net?
- 7. Как отправить электронное письмо получателю
- 8. Отправить электронное письмо как html
- 9. Как отправить электронное письмо автоматически
- 10. Как отправить электронное письмо на Mule ESB
- 11. Как отправить электронное письмо на form_submit?
- 12. Как отправить электронное письмо на адрес MD5
- 13. Как отправить электронное письмо на международный адрес
- 14. Отправить электронное письмо в итерациях. C#
- 15. Отправить электронное письмо через C# в asp.net
- 16. Как отправить электронное письмо с ссылкой на параметр в C#?
- 17. Как отправить электронное письмо с помощью Python
- 18. Отправить электронное письмо, когда отправлено электронное письмо от определенного шаблона
- 19. Отправить электронное письмо с нажатием
- 20. Отправить электронное письмо в iphone
- 21. Powershell - отправить электронное письмо html
- 22. Как отправить электронное письмо в python?
- 23. Как отправить электронное письмо с помощью шаблона?
- 24. Отправить электронное письмо после покупки
- 25. «Отправить электронное письмо» с Microsoft.Office.Interop.Outlook
- 26. Отправить электронное письмо с WatchKit
- 27. отправить электронное письмо нескольким получателям
- 28. Laravel: wont 'отправить электронное письмо
- 29. Как отправить электронное письмо с моей страницы?
- 30. Отправить электронное письмо на определенную дату/время
Возможный дубликат [отправка по электронной почте из C программы/C++ в Linux] (http://stackoverflow.com/questions/9317305/sending-an-email-from- acc-program-in-linux) – rogerdpack