Pergunta

Ei, meu programa QT C ++ tem uma parte em que ele precisa enviar os primeiros 128 caracteres da saída de um comando bash para um endereço de email. A saída do TTY é capturada em uma caixa de texto na minha GUI chamada textitIt_displayoutput e colocada em minha mensagem que construí usando o construtor de mensagens (o objeto m_vmmessage) Aqui está o snippet de código relevante:

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 a Bash 'ls /' e uma nova linha faz com que o VMIME dê uma saída do terminal como esta:

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 deve parecer mais assim:

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>

A saída parece ser truncada em torno da 'raiz', nada depois de ser exibido.

Como faço para codificar e reunir o email corretamente? O VMIME apenas o exibe assim de propósito e o conteúdo real do email está completo e formatado corretamente?

Obrigado!

Nenhuma solução correta

Outras dicas

=0A é um caractere de alimentação de linha (LF).
=09 é uma guia horizontal (ht).

Eu acho que essa é apenas a maneira do MIME de codificar seus caracteres não imprimíveis (controle).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top