Pregunta

Hola, mi programa Qt C ++ tiene una parte donde tiene que enviar los primeros 128 caracteres o menos de la salida de un comando de bash a una dirección de correo electrónico. La salida del TTY es capturado en un cuadro de texto en mi GUI llamada textEdit_displayOutput y puesto en mi mensaje he construido utilizando el generador de mensajes (el m_vmMessage objeto) Aquí está el fragmento de código correspondiente:

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 );

Dar 'ls / bash y una nueva línea hace vmime dar salida a la terminal de esta manera:

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  =

Considerando que debe mirar más a esto:

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>

Salida parece estar truncado en torno a 'root', nada después de que se muestre.

¿Cómo puedo codificar y unir las piezas del correo electrónico correctamente? No vmime simplemente los muestran como esa en el propósito y el contenido real del mensaje es completo y el formato correcto?

Gracias!

No hay solución correcta

Otros consejos

=0A es un avance de línea caracteres (LF).
=09 es una pestaña horizontal (HT).

Creo que esto es sólo su forma de codificar los caracteres no imprimibles (control) de MIME.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top