Эй, моя программа Qt C++ имеет часть, в которой ему нужно отправить первые 128 символов или около того вывода команды bash на адрес электронной почты. Выход из TTY захватывается в текстовом поле в моем гуй называется textEdit_displayOutput и положить в мое сообщение я построил с помощью Message Builder (объект m_vmMessage) Вот соответствующий фрагмент кода:Углубленный текст при построении сообщений электронной почты с помощью vmime
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);
Давать Баш «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>
выход, кажется, truncat ed вокруг «root», ничего не отображается.
Как правильно закодировать и скомпоновать электронное письмо? Vmime просто отображает это как это специально, и фактическое содержание письма заполнено и правильно отформатировано?
Спасибо!
Хорошо, поэтому фактическая информация в письме в порядке? Не только это, но также не дает весь вывод 'ls' (Обратите внимание, что он усечен у« root ») – 2010-03-14 02:10:20
Что вы видите при получении электронной почты? По-моему, приличный почтовый клиент не должен показывать вам исходное MIME-кодированное приложение. Кроме того, проблема усечения, возможно, является отдельной проблемой. Есть ли буферный выходной поток, который вы не смываете, или ...? –