2016-11-20 2 views
0

Я пытаюсь прочитать тело от электронной почты, но в моем DataGridView У меня есть только два сообщения, и есть информация: «ссылка на объект не указывает на экземпляр объекта»OpenPop Body 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

Что ваш вопрос? – Sebi

+0

как я могу решить его для просмотра всех сообщений без «ссылки на объект, не установленной в экземпляр объекта»? – Ops

+1

, на какой строке вы получите эту ошибку? Это происходит, если вы обращаетесь к ссылке, которая содержит нулевое значение. Например message = null; message.MessagePart запускает System.NullReferenceException. – Sebi

ответ

0

Убедитесь, вы объект сообщения не является нулевым чеком для нулевой

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 }); 
} 
Смежные вопросы