如何在Outlook中阅读Internet标题和电子邮件

时间:2017-03-11 19:20:26

标签: qt email outlook qt5.8 qaxobject

我尝试阅读电子邮件Internet标头,我们可以在Outlook应用中的电子邮件属性中查看它 我问是否有选项,所以我可以使用此代码来阅读outlook中的电子邮件

  Outlook::Application outlook;
  if (!outlook.isNull())
  {
  Outlook::NameSpace session(outlook.Session());
  session.Logon();
  Outlook::MAPIFolder *folder = session.GetDefaultFolder(Outlook::olFolderInbox);

  Outlook::Items* mails = new Outlook::Items(folder->Items());
  mails->Sort("ReceivedTime");
  int num = mails->Count();
  ui->label->setText(QString("I have %1 of messages").arg(QString::number(num)));

  // Indexing starts from 1
  for (int i = 1; i < num; i++)
  {
  Outlook::MailItem mail(mails->Item(i));
  QString s = mail.Subject(); // do something with subject
  QString b = mail.Body(); // do something with body
  ui->plainTextEdit->appendPlainText("subject : \n" + s);
  ui->plainTextEdit->appendPlainText("Body : " + b);
  ui->plainTextEdit->appendPlainText("-----------------------------------------------");
  }
  }

我检查Outlook :: MailItem是否有一个函数来获取这个Internet标题,但我没有找到,如果有人尝试过它或有任何想法解决这个问题 提前致谢

1 个答案:

答案 0 :(得分:2)

您可以通过PR_TRANSPORT_MESSAGE_HEADERS_W属性访问Internet标头。可以通过PropertyAccessor对象检索该属性和其他MAPI属性。请注意,虽然不能通过命名的MAPI属性访问单个x-header,但它们捆绑在邮件头中,因此您需要解析每行文本以查找任何特定的头记录。