Искаженный текст при построении писем с помощью vmime
Эй, моя программа на 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>
Вывод кажется усеченным вокруг "корня", ничего после того, как он отображается.
Как правильно закодировать и собрать воедино письмо? Vmime просто отображает это специально, а фактическое содержание письма полностью и правильно отформатировано?
Спасибо!
1 ответ
=0A
является символом перевода строки (LF).=09
горизонтальная вкладка (HT).
Я думаю, что это просто способ MIME для кодирования непечатных (управляющих) символов.