the code below is supposed to send a HTML response to a sender.
There is supposed to be an image "error.jpg" sent back to the caller.
The image that goes to the caller is damaged.
Qustion: Does the code below show the correct way to attach an image to an email?
Supposed to send a HTML response:
// reply error prepare
vmime::ref<vmime::net::message> orgMsg = folder->getMessage(idx+1);
folder->fetchMessage( orgMsg, vmime::net::folder::FETCH_FULL_HEADER );
std::string replyAddress = orgMsg->getHeader()->From()->getValue()->generate();
std::string replyError = std::string("ERROR: ");
vmime::ref<vmime::message> reply = connection->getForward( idx+1, replyAddress, replyError );
vmime::ref<vmime::bodyPart> body = vmime::create<vmime::bodyPart>();
std::ifstream * fileStream = new std::ifstream("./file.jpg", std::ios_base::binary );
vmime::ref<vmime::utility::inputStream> dataStream = vmime::create<vmime::utility::inputStreamPointerAdapter>(fileStream);
vmime::ref<vmime::contentHandler> handler = vmime::create<vmime::streamContentHandler>(dataStream, 0);
vmime::ref<vmime::htmlTextPart> bodyHtml = vmime::create<vmime::htmlTextPart>();
const vmime::string id = bodyHtml->addObject( handler,
vmime::mediaType( vmime::mediaTypes::IMAGE, vmime::mediaTypes::IMAGE_JPEG));
bodyHtml->setText(vmime::create<vmime::stringContentHandler>(vmime::string("<img src=\"") + id + vmime::string("\">")));
bodyHtml->generateIn( body, reply );
// Change sequence of attach parts.
body = reply->getBody()->getPartAt(0);
reply->getBody()->appendPart( body );
outConnection.sendMessage( reply );
folder->deleteMessage( idx+1 );
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.