OpenPop Body C#
Я пытаюсь прочитать тело из электронной почты, но в моем datagridview у меня есть только два сообщения, и есть информация: "ссылка на объект не установлена на экземпляр объекта"
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);
}
}
1 ответ
Решение
Убедитесь, что ваш объект сообщения не является нулевым, проверяя на нулевое значение
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 });
}