2017-03-11 50 views
0

私は電子メールを読もうとしていますが、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("-----------------------------------------------"); 
    } 
    } 

でメールを読んで、私はこのインターネットヘッダーを取得する機能のための展望:: MailItemをチェックしましたが、いずれかの前にそれを試してみたりで、この 感謝を解決するための任意のアイデアを持っているので、もし私が見つかりません。 advance

+0

私は3つのOutlookプロファイル(3つの異なる電子メールアカウント)を設定しています。どのようにプロファイル(アカウント)の受信トレイを使用するかを選択するにはどうすればよいですか? – user5155835

答えて

2

インターネットヘッダーには、PR_TRANSPORT_MESSAGE_HEADERS_Wプロパティからアクセスできます。そのプロパティと他のMAPIプロパティは、PropertyAccessorオブジェクトを介して取得できます。特定のヘッダーレコードを見つけるためには、各行のテキストを解析する必要があるため、名前付きMAPIプロパティを使用して個々のxヘッダーにアクセスすることはできませんが、メッセージヘッダー内にバンドルされています。

+0

PropertyAccessorオブジェクトをOutlook :: MailItemから作成すると、GetProperty( "PR_TRANSPORT_MESSAGE_HEADERS_W")を使用しようとすると無効なQVarintが返されます。 –

+1

そのプロパティのDASL名を使用します:.GetProperty( "http: /schemas.microsoft.com/mapi/proptag/0x007D001F ") –

+0

答えにコードの完全な部分を追加してください。 –

関連する問題