1

Outlookの電子メールに送信された電子メールからいくつかの情報を取得しようとしています。Exchange Serverに正常に接続し、添付ファイル付きの電子メールからいくつかの情報を取得できました(添付ファイルなしの電子メールをスキップしています)。

私が持っているもの:添付ファイル名、電子メールの日付、および電子メールの件名を取得できます。

必要なもの:送信者の名前とメールアドレスも取得する必要があります。私が行ったことから、電子メールの本文(HTML形式)を取得できますが、本文のみを取得することはできません(Exchange 2013-Hello MS広告が必要です)。

私はC#を初めて使用し、今日はExchangeServerに接続するのは初めてです。「検索」は取得できるものが限られていること、そして電子メールからより多くの情報を取得するためにメッセージをバインドする必要があることを読んで気づきました。

これまでのコード:

foreach (Item item in findResults.Items)

                if (item.HasAttachments) // && item.Attachments[0] is FileAttachment)
                {
                    item.Load();
                    FileAttachment fileAttachment = item.Attachments[0] as FileAttachment;
                    date = Convert.ToString(item.DateTimeCreated);
                    name = Convert.ToString(fileAttachment.Name);
                    fileAttachment.Load("C:\\test\\" + fileAttachment.Name);
                    Console.WriteLine(name);
                    Console.WriteLine(item.Subject);
                    Console.WriteLine(date);
                }

ここからの私の質問は、EmailMessage msg = EmailMessage.Bind ...を実行する場合、より多くの情報を取得するためにどのような情報が必要になるかということです。

4

1 に答える 1

0

解決済み-送信者の電子メールと名前を取得し、添付ファイルをロードします。

私はEmailMessageクラスを使用しました(上記のループに追加し、変数を最初に追加しました):

                    EmailMessage msg = (EmailMessage)item;
                    senderemail = Convert.ToString(msg.Sender.Address);
                    sendername = Convert.ToString(msg.Sender.Name);

次に、これらをコンソールで再現できます。

                    Console.WriteLine(senderemail);
                    Console.WriteLine(sendername);

また、電子メールの添付ファイルをロードするために、最初にbyte []変数を宣言し、添付ファイルをロードして変換し、その内容をコンソールに書き込みました。

                    fileAttachment.Load();
                    filecontent = fileAttachment.Content;
                    System.Text.Encoding enc = System.Text.Encoding.ASCII;
                    string strFileContent = enc.GetString(filecontent);
                    Console.WriteLine(strFileContent);
于 2012-11-28T16:33:45.063 に答える