/// <summary> /// Gets all message from the email server /// </summary> /// <returns>all message from the server as List emailStruct</returns> public List<emailStruct> FetchAllMessages() { //HEJ MED DIG if(!SetConnection()) { return null; } int messageCount = client.GetMessageCount(); List<emailStruct> allEmails = new List<emailStruct>(messageCount); for (int i = 1; i <= messageCount; i++) { emailStruct email = new emailStruct(); Message mes = client.GetMessage(i); email.messageID = mes.Headers.MessageId; email.senderName = mes.Headers.From.DisplayName; email.senderEmail = mes.Headers.From.MailAddress.Address; string cc = ""; for (int j = 0; j < mes.Headers.Cc.Count; j++) { if (!String.IsNullOrEmpty(cc)) { cc += ","; } cc += mes.Headers.Cc[j]; } string mailTo = ""; for (int j = 0; j < mes.Headers.To.Count; j++) { if (!String.IsNullOrEmpty(mailTo)) { mailTo += ","; } mailTo += mes.Headers.To[j]; } email.cc = cc; email.mailTo = mailTo; email.subject = mes.Headers.Subject; email.timeStamp = mes.Headers.Date; email.body = mes.FindFirstHtmlVersion().GetBodyAsText(); email.receiver = user.email; email.seen = true; allEmails.Add(email); } client.Disconnect(); return allEmails; }
/// <summary> /// Gets all message from the email server /// </summary> /// <returns>all message from the server as List emailStruct</returns> public List <emailStruct> FetchAllMessages() { //HEJ MED DIG if (!SetConnection()) { return(null); } int messageCount = client.GetMessageCount(); List <emailStruct> allEmails = new List <emailStruct>(messageCount); for (int i = 1; i <= messageCount; i++) { emailStruct email = new emailStruct(); Message mes = client.GetMessage(i); email.messageID = mes.Headers.MessageId; email.senderName = mes.Headers.From.DisplayName; email.senderEmail = mes.Headers.From.MailAddress.Address; string cc = ""; for (int j = 0; j < mes.Headers.Cc.Count; j++) { if (!String.IsNullOrEmpty(cc)) { cc += ","; } cc += mes.Headers.Cc[j]; } string mailTo = ""; for (int j = 0; j < mes.Headers.To.Count; j++) { if (!String.IsNullOrEmpty(mailTo)) { mailTo += ","; } mailTo += mes.Headers.To[j]; } email.cc = cc; email.mailTo = mailTo; email.subject = mes.Headers.Subject; email.timeStamp = mes.Headers.Date; email.body = mes.FindFirstHtmlVersion().GetBodyAsText(); email.receiver = user.email; email.seen = true; allEmails.Add(email); } client.Disconnect(); return(allEmails); }
/// <summary> /// Get all unseen emails from the server /// </summary> /// <returns>list of new emails</returns> public List<emailStruct> FetchUnseenMessages() { SetConnection(); List<string> uids; try { uids = client.GetMessageUids(); } catch { return null; } List<emailStruct> allEmails = new List<emailStruct>(); for (int i = 0; i < uids.Count; i++) { string currentUidOnServer = uids[i]; if (!seenUids.Contains(currentUidOnServer)) { emailStruct email = new emailStruct(); Message mes = client.GetMessage(i + 1); email.messageID = mes.Headers.MessageId; email.senderName = mes.Headers.From.DisplayName; email.senderEmail = mes.Headers.From.MailAddress.Address; string cc = ""; for (int j = 0; j < mes.Headers.Cc.Count; j++) { if (!String.IsNullOrEmpty(cc)) { cc += ","; } cc += mes.Headers.Cc[j]; } string mailTo = ""; for (int j = 0; j < mes.Headers.To.Count; j++) { if (!String.IsNullOrEmpty(mailTo)) { mailTo += ","; } mailTo += mes.Headers.To[j]; } email.cc = cc; email.mailTo = mailTo; email.subject = mes.Headers.Subject; email.timeStamp = mes.Headers.Date; email.body = mes.FindFirstHtmlVersion().GetBodyAsText(); email.receiver = user.email; email.seen = false; if (String.IsNullOrEmpty(email.messageID)) { MailDatabase db = new MailDatabase(); bool inDatabase = false; foreach (emailStruct spamEmail in db.getEmailByMessageID("NULL")) { if (spamEmail.body == email.body && spamEmail.senderEmail == email.senderEmail && spamEmail.subject == email.subject) { inDatabase = true; break; } } if(inDatabase) { continue; } } allEmails.Add(email); seenUids.Add(currentUidOnServer); } } client.Disconnect(); return allEmails; }
/// <summary> /// Get all unseen emails from the server /// </summary> /// <returns>list of new emails</returns> public List <emailStruct> FetchUnseenMessages() { SetConnection(); List <string> uids; try { uids = client.GetMessageUids(); } catch { return(null); } List <emailStruct> allEmails = new List <emailStruct>(); for (int i = 0; i < uids.Count; i++) { string currentUidOnServer = uids[i]; if (!seenUids.Contains(currentUidOnServer)) { emailStruct email = new emailStruct(); Message mes = client.GetMessage(i + 1); email.messageID = mes.Headers.MessageId; email.senderName = mes.Headers.From.DisplayName; email.senderEmail = mes.Headers.From.MailAddress.Address; string cc = ""; for (int j = 0; j < mes.Headers.Cc.Count; j++) { if (!String.IsNullOrEmpty(cc)) { cc += ","; } cc += mes.Headers.Cc[j]; } string mailTo = ""; for (int j = 0; j < mes.Headers.To.Count; j++) { if (!String.IsNullOrEmpty(mailTo)) { mailTo += ","; } mailTo += mes.Headers.To[j]; } email.cc = cc; email.mailTo = mailTo; email.subject = mes.Headers.Subject; email.timeStamp = mes.Headers.Date; email.body = mes.FindFirstHtmlVersion().GetBodyAsText(); email.receiver = user.email; email.seen = false; if (String.IsNullOrEmpty(email.messageID)) { MailDatabase db = new MailDatabase(); bool inDatabase = false; foreach (emailStruct spamEmail in db.getEmailByMessageID("NULL")) { if (spamEmail.body == email.body && spamEmail.senderEmail == email.senderEmail && spamEmail.subject == email.subject) { inDatabase = true; break; } } if (inDatabase) { continue; } } allEmails.Add(email); seenUids.Add(currentUidOnServer); } } client.Disconnect(); return(allEmails); }