Это одно из тех мест, где (по моему опыту) вам лучше без библиотек. Microsoft предоставляет (как минимум) MAPI, Simple MAPI и CDO в качестве способов отправки электронной почты. К сожалению, по моему опыту, все они (, особенно MAPI) значительно сложнее, чем выполнять работу самостоятельно.
По крайней мере, если вы имеете дело с незащищенным соединением электронной почты, выполнять работу без библиотеки довольно просто: подключитесь к серверу через порт 25. Отправьте ему несколько строк и электронное письмо. Когда вы приступаете к этому, «Простой» - это «Простой протокол пересылки почты», который полностью гарантирован - это действительно довольно просто сделать.
Если вы хотите создать защищенное соединение, вы почти наверняка захотите использовать для этого библиотеку - создание защищенного соединения является совершенно нетривиальной задачей. Поскольку вы используете Windows, очевидным выбором будет InternetOpen
и InternetConnect
. Вопреки документации, InternetConnect
позволит вам создать соединение на почти любом порту. В нем перечислены только полдюжины возможностей или около того, но если вы просто передадите фактический номер порта, такой как 465 или 587, он должен работать - хотя существует несколько блоков WinInet несколько портов (вероятно, неэффективных) ) меры безопасности.
Работа с вложением - это (в основном) отдельный вопрос. Вложение просто заканчивается как текст в теле письма, с достаточным количеством заголовка, чтобы программа-получатель электронной почты интерпретировала его как вложение вместо текста. Есть три достаточно популярных варианта: BinHex, UUencode и MIME. Если вы просто хотите делать простые вложения, UUencode, вероятно, является подходящим вариантом. MIME более способный, но значительно более сложный. Основной причиной его использования было бы то, что вы хотели делать что-то, кроме простых вложений (например, электронная почта с вложенными, а не вложенными файлами). BinHex несколько проще в реализации, но тратит больше места - основная причина его использования - для нескольких старых почтовых клиентов, которые не могут обрабатывать что-либо еще.