2016-11-20 5 views
0

私は電子メールの本文を読みしようとしていますが、私のDataGridViewの上で、私は2つのだけのメッセージを持っているとの情報があります:OpenPopボディC#

private DataTable dt; 
private Pop3Client client = new Pop3Client(); 

private void button11_Click(object sender, EventArgs e) 
{ 
    dt = new DataTable("Inbox"); 
    dt.Columns.Add("Subject"); 
    dt.Columns.Add("Sender"); 
    dt.Columns.Add("Body"); 
    dt.Columns.Add("Time"); 
    dataGridView1.DataSource = dt; 

    try 
    {    
     client.Connect("pop-mail.outlook.com", 995, true); 
     client.Authenticate(textBox6.Text, textBox5.Text); 
     var count = client.GetMessageCount(); 
     int messageCount = client.GetMessageCount(); 
     for (int i = count; i >= 1; i -= 1) 
     { 
      OpenPop.Mime.Message message = client.GetMessage(i);     
      OpenPop.Mime.MessagePart messagePart = message.MessagePart.MessageParts[1]; 

      string test = messagePart.BodyEncoding.GetString(messagePart.Body); 

      dt.Rows.Add(new object[] { message.Headers.Subject, message.Headers.Sender, test, message.Headers.DateSent }); 
     }    
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
「オブジェクトのインスタンスに設定されていないオブジェクト参照が」
+0

のチェックでnullではない、ことを確認してください – Sebi

+0

"オブジェクトのインスタンスに設定されていないオブジェクト参照"なしですべてのメッセージを表示する方法を解決できますか? – Ops

+1

このエラーが発生するのはどのラインですか?ヌル値で構成される参照にアクセスすると起こります。例えば、message = null; message.MessagePartはSystem.NullReferenceExceptionを発生させます。 – Sebi

答えて

0

あなたの質問は何ですか?あなたがメッセージオブジェクトがnull

OpenPop.Mime.Message message = client.GetMessage(i); 
//Check you message is not null 
if(message != null){ 
    OpenPop.Mime.MessagePart messagePart = message.MessagePart.MessageParts[1]; 

    string test = messagePart.BodyEncoding.GetString(messagePart.Body); 

    dt.Rows.Add(new object[] { message.Headers.Subject, message.Headers.Sender, test, message.Headers.DateSent }); 
}