Domanda

Ciao, il mio programma Qt C ++ ha una parte dove deve inviare i primi 128 caratteri o così l'output di un comando bash a un indirizzo email. L'uscita dal tty viene catturato in una casella di testo nella mia gui chiamato textEdit_displayOutput e messo in mio messaggio ho costruito utilizzando il Messaggio Builder (l'm_vmMessage oggetto) Ecco il relativo frammento di codice:

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

Dare 'ls /' bash e un ritorno a capo rende vmime dare uscita del terminale in questo modo:

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 che dovrebbe essere più simile a questo:

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>

Output sembra essere troncato intorno 'root', nulla dopo questo viene visualizzato.

Come faccio a codificare e mettere insieme l'e-mail in modo corretto? Ha vmime proprio visualizzarlo come quella di proposito e l'effettivo contenuto della e-mail è completa e formattata correttamente?

Grazie!

Nessuna soluzione corretta

Altri suggerimenti

=0A è un avanzamento riga (LF) carattere.
=09 è una tabulazione orizzontale (HT).

Credo che questo è solo il modo di MIME di codifica del non-stampa (controllo) caratteri.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top