This commit is contained in:
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
using MailKit.Net.Smtp;
|
using MailKit.Net.Smtp;
|
||||||
using MailKit.Net.Imap;
|
using MailKit.Net.Imap;
|
||||||
@@ -326,6 +327,35 @@ namespace rockfishCore.Util
|
|||||||
var name = sender != null ? (!string.IsNullOrEmpty(sender.Name) ? sender.Name : sender.Address) : "someone";
|
var name = sender != null ? (!string.IsNullOrEmpty(sender.Name) ? sender.Name : sender.Address) : "someone";
|
||||||
|
|
||||||
quoted.WriteLine("On {0}, {1} wrote:", message.Date.ToString("f"), name);
|
quoted.WriteLine("On {0}, {1} wrote:", message.Date.ToString("f"), name);
|
||||||
|
|
||||||
|
//TODO: get text message just like in reader here for html only message
|
||||||
|
//sometimes body text is empty.
|
||||||
|
/*
|
||||||
|
var theBody = m.GetTextBody(MimeKit.Text.TextFormat.Plain);
|
||||||
|
if (theBody == null)
|
||||||
|
{
|
||||||
|
//might be an html email, try to get the text anyway
|
||||||
|
var ht = m.HtmlBody;
|
||||||
|
if (!string.IsNullOrWhiteSpace(ht))
|
||||||
|
{
|
||||||
|
theBody = "**** HTML-ONLY MESSAGE ****";
|
||||||
|
theBody += "\r\n=-=-=-=- TEXT CONVERSION =-=-=-=-\r\n";
|
||||||
|
theBody += StripHTML(ht, true);
|
||||||
|
theBody += "\r\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
|
||||||
|
theBody += "\r\n=-=-=-=- SOURCE HTML =-=-=-=-\r\n";
|
||||||
|
theBody += ht;
|
||||||
|
theBody += "\r\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
|
||||||
|
theBody += "\r\n******* END MESSAGE *******";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
theBody = "NO MESSAGE BODY WAS FOUND NEITHER HTML NOR TEXT";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.AppendLine(theBody);
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
using (var reader = new StringReader(message.TextBody))
|
using (var reader = new StringReader(message.TextBody))
|
||||||
{
|
{
|
||||||
string line;
|
string line;
|
||||||
@@ -668,7 +698,32 @@ namespace rockfishCore.Util
|
|||||||
sb.AppendLine(m.Subject);
|
sb.AppendLine(m.Subject);
|
||||||
sb.AppendLine();
|
sb.AppendLine();
|
||||||
sb.AppendLine();
|
sb.AppendLine();
|
||||||
sb.AppendLine(m.GetTextBody(MimeKit.Text.TextFormat.Plain));
|
// sb.AppendLine(m.GetTextBody(MimeKit.Text.TextFormat.Plain));
|
||||||
|
//TODO: if it's an all html email then body will be empty, so attempt to co-erce it into some readable text because the above is not working for that
|
||||||
|
|
||||||
|
var theBody = m.GetTextBody(MimeKit.Text.TextFormat.Plain);
|
||||||
|
if (theBody == null)
|
||||||
|
{
|
||||||
|
//might be an html email, try to get the text anyway
|
||||||
|
var ht = m.HtmlBody;
|
||||||
|
if (!string.IsNullOrWhiteSpace(ht))
|
||||||
|
{
|
||||||
|
theBody = "**** HTML-ONLY MESSAGE ****";
|
||||||
|
theBody += "\r\n=-=-=-=- TEXT CONVERSION =-=-=-=-\r\n";
|
||||||
|
theBody += StripHTML(ht, true);
|
||||||
|
theBody += "\r\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
|
||||||
|
theBody += "\r\n=-=-=-=- SOURCE HTML =-=-=-=-\r\n";
|
||||||
|
theBody += ht;
|
||||||
|
theBody += "\r\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-";
|
||||||
|
theBody += "\r\n******* END MESSAGE *******";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
theBody = "NO MESSAGE BODY WAS FOUND NEITHER HTML NOR TEXT";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.AppendLine(theBody);
|
||||||
|
|
||||||
rfMessagePreview preview = new rfMessagePreview();
|
rfMessagePreview preview = new rfMessagePreview();
|
||||||
preview.id = uid;
|
preview.id = uid;
|
||||||
preview.preview = sb.ToString();
|
preview.preview = sb.ToString();
|
||||||
@@ -685,6 +740,14 @@ namespace rockfishCore.Util
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//convert html to text
|
||||||
|
public static string StripHTML(string HTMLText, bool decode = true)
|
||||||
|
{
|
||||||
|
Regex reg = new Regex("<[^>]+>", RegexOptions.IgnoreCase);
|
||||||
|
var stripped = reg.Replace(HTMLText, "");
|
||||||
|
var ret = decode ? System.Web.HttpUtility.HtmlDecode(stripped) : stripped;
|
||||||
|
return ret.Trim();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
|
|||||||
Reference in New Issue
Block a user