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