Эй, моя программа на Qt C ++ содержит часть, в которой она должна отправить первые 128 символов или около того результата команды bash на адрес электронной почты. Вывод tty записывается в текстовое поле в моем графическом интерфейсе textEdit_displayOutput и помещается в мое сообщение, построенное мной с помощью построителя сообщений (объект m_vmMessage). Вот соответствующий фрагмент кода:
m_vmMessage.getTextPart()->setCharset( vmime::charsets::US_ASCII );
m_vmMessage.getTextPart()->setText( vmime::create < vmime::stringContentHandler > ( ui->textEdit_displayOutput->toPlainText().toStdString() ) );
vmime::ref < vmime::message > msg = m_vmMessage.construct();
vmime::utility::outputStreamAdapter out( std::cout );
msg->generate( out );
Дает bash 'ls /' и перевод строки заставляет vmime выдавать вывод терминала следующим образом:
ls /=0Abin etc=09 initrd.img.old mnt=09 sbin=09 tmp=09 vmlinuz.o=
ld=0Aboot farts=09 lib=09=09 opt=09 selinux usr=0Acdrom home=09 =
lost+found=09 proc srv=09 var=0Adev initrd.img media=09 root =
Принимая во внимание, что это должно выглядеть больше так:
ls /
bin etc initrd.img.old mnt sbin tmp vmlinuz.old
boot farts lib opt selinux usr
cdrom home lost+found proc srv var
dev initrd.img media root sys vmlinuz
18:22>
Кажется, что вывод обрезан вокруг 'root', после отображения ничего не происходит.
Как правильно закодировать и собрать сообщение? Vmime просто отображает это специально, а фактическое содержание письма полностью и правильно отформатировано?
Спасибо!