문제

이봐, 내 QT C ++ 프로그램에는 Bash 명령의 출력 중 첫 128 자 이상을 이메일 주소로 보내야 할 부분이 있습니다. TTY의 출력은 GUI의 TextedIt_displayOutput이라는 GUI의 텍스트 상자에 캡처되어 메시지 Builder (Object 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 /'와 Newline을 제공하면 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>

출력은 '루트'주위에 잘린 것처럼 보이며 표시되지 않은 후에는 아무것도 없습니다.

이메일을 올바르게 인코딩하고 결합하려면 어떻게해야합니까? vmime은 의도적으로 그것을 표시하고 이메일의 실제 콘텐츠가 완료되고 적절하게 형식화되어 있습니까?

감사!

올바른 솔루션이 없습니다

다른 팁

=0A 라인 피드 (LF) 문자입니다.
=09 수평 탭 (HT)입니다.

나는 이것이 당신의 비 인쇄 (제어) 문자를 인코딩하는 Mime의 단지 Mime의 방법이라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top