嗨,我的Qt C ++程序具有它需要发送前128个字符或所以bash命令的输出到一个电子邮件地址的一部分。从tty输出在我的GUI称为textEdit_displayOutput文本框被捕获并投入我的消息我使用消息生成器(对象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 /' 和一个新行使得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的方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top