0

Я ищу для создания SMTP, который позволяет вложения файлов, однако мне трудно найти учебник. Я нашел одну близкую вещь, то есть https://stackoverflow.com/questions/58210/c-smtp-example, однако это не скомпилируется в VS2005/2010 из-за включенных файлов, которые используются.C++ SMTP, который разрешает вложения файлов

Я хотел бы свернуть свое и не адаптироваться к какой-либо библиотеке, такой как Curl или Boost. У кого-нибудь есть предложения по тому, как это сделать, или небольшой пример кода с хорошей документацией, которая будет компилироваться в Visual Studio?

+0

Вы имеете в виду SMTP * client *? –

+0

Да, я сделал, мой плохой – chadb

+0

Есть ли какие-нибудь предложения от кого-нибудь? – chadb

ответ

1

Основываясь на my answer to a previous question, используя классы Microsoft ATL, которые входят в платные версии Visual Studio.

CSMTPConnection smtp; 
if (!smtp.Connect(m_strEmailServer)) 
    return false; 
// start generating the email message; remember to call CoInitialize somewhere in the app before this 
CMimeMessage msg; 
msg.SetSubject(m_strSubject); 
msg.SetSender(m_strSender); 
// repeat the following as necessary 
msg.AddRecipient(strSingleRecipient); 
msg.AddText(m_strBody); 

// add an attachment 
msg.AttachFile(m_strAttachmentPath, m_strAttachmentName, _T("application/octet-stream")); 

if (!smtp.SendMessage(msg)) 
    return false; 
return true; 

Тип MIME, указанный в вызове AttachFile, будет зависеть от типа приложения.

+0

Хотя очень интересно, требуется ли MAPI? Я бы предпочел не использовать программу электронной почты по умолчанию. – chadb

+0

Я неправильно прочитал этот пост, который вы связали, но, похоже, для него требуется ATL/не экспресс-версия Visual Studio. Я хотел бы, чтобы это работало с экспресс-версиями Visual Studio. – chadb

0

Существует несколько способов вложения. Вы можете использовать UUEncoded или MIME-форматирование. UUEncoded намного проще, если вы хотите сворачивать самостоятельно.