Hi anshukumar,
To read emails from mail server i am using OpenPop.Net library.
This library read emails from the POP3 mail Servers.
Check this example. Now please take its reference and correct your code.
Download OpenPop.Net
You can download OpenPop.Net using the download link below
Download OpenPop.Net
Model
public class EmailModel
{
public int MessageNumber { get; set; }
public string From { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public DateTime DateSent { get; set; }
}
Namespaces
using OpenPop.Pop3;
using OpenPop.Mime;
Controller
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View(Read_Emails());
}
private List<EmailModel> Read_Emails()
{
Pop3Client pop3Client = new Pop3Client();
pop3Client.Connect("pop.gmail.com", 995, true);
pop3Client.Authenticate("youremail@gmail.com", "password", AuthenticationMethod.TryBoth);
int count = pop3Client.GetMessageCount();
List<EmailModel> emails = new List<EmailModel>();
int counter = 0;
for (int i = count; i >= 1; i--)
{
Message message = pop3Client.GetMessage(i);
EmailModel email = new EmailModel()
{
MessageNumber = i,
From = string.Format("<a href = 'mailto:{1}'>{0}</a>", message.Headers.From.DisplayName, message.Headers.From.Address),
Subject = message.Headers.Subject,
DateSent = message.Headers.DateSent
};
MessagePart body = message.FindFirstHtmlVersion();
if (body != null)
{
email.Body = body.GetBodyAsText();
}
else
{
body = message.FindFirstPlainTextVersion();
if (body != null)
{
email.Body = body.GetBodyAsText();
}
}
emails.Add(email);
counter++;
if (counter > 2)
{
break;
}
}
return emails;
}
}
View
@model List<EmailModel>
@using Read_Emails_Pop3_MVC.Models
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/themes/smoothness/jquery-ui.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/jquery-ui.min.js"></script>
<script type="text/javascript">
$("[id*=lnkView]").live("click", function () {
var subject = $(this).text();
var row = $(this).closest("tr");
$("#body").html($(".body", row).html());
$("#dialog").dialog({
title: subject,
buttons: {
Ok: function () {
$(this).dialog('close');
}
}
});
return false;
});
</script>
</head>
<body>
<table>
<tr>
<th>From</th>
<th>Subject</th>
<th>Date</th>
</tr>
@foreach (EmailModel email in Model)
{
<tr>
<td>@Html.Raw(email.From)</td>
<td>
<a id="lnkView" href="#">@email.Subject</a>
<span class="body" style="display: none">
@Html.Raw(email.Body)
</span>
</td>
<td>@email.DateSent</td>
</tr>
}
</table>
<div id="dialog" style="display: none">
<span id="body"></span>
</div>
</body>
</html>
Screenshots
Email Read from Server
Email details in modal popup