我正在尝试使用AE.Net.Mail获取纯文本或HTML电子邮件文本。 我找不到任何文件。
using (Pop3Client pop3 = new AE.Net.Mail.Pop3Client("pop3Server", "login", "pwd", 995, true))
{
for (var i = pop3.GetMessageCount() - 1; i >= 0; i--)
{
MailMessage Msg = pop3.GetMessage(i);
string HtmlText = Msg.??????
string PlainText = Msg.??????
}
}
编辑:我找到了这个解决方案
IList<Attachment> iList;
string HtmlText = "", PlainText = "";
for (var i = pop3.GetMessageCount() - 1; i >= 0; i--)
{
MailMessage msg = pop3.GetMessage(i);
TextBody = msg.Body;
iList = msg.AlternateViews as IList<Attachment>;
if (iList.Count == 0) iList = msg.Attachments as IList<Attachment>;
if (iList.Count > 0)
{
TextBody = iList[0].Body;
HtmlBody = iList[1].Body;
}
}
答案 0 :(得分:6)
我用这种方法解决了这个问题:
Firt创建一个类:
class BodyContent
{
public string ContentType { get; set; }
public string Body { get; set; }
}
比:
List<BodyContent> bodies = new List<BodyContent>();
foreach (AE.Net.Mail.Attachment item in mail.AlternateViews)
{
bodies.Add(new BodyContent
{
ContentType = item.ContentType,
Body = item.Body
});
}
并检查“text / html”:
string body="";
BodyContent bodyTemp= bodies.Find(x => x.ContentType == "text/html");
if (bodyTemp== null)
body = mail.Body;
else
body = bodyTemp.Body;
如果有“text / html”,正文的格式为html else body的格式为
答案 1 :(得分:2)
Body = e.Value.AlternateViews.GetHtmlView()。正文,
答案 2 :(得分:0)
如果您的MailMessage
是System.Net.Mail
,则可以从Body
媒体获取邮件正文。它可以是HTML或纯文本,具体取决于IsBodyHtml
属性。 AlternateViews
属性还可以包含邮件正文的替代形式。
答案 3 :(得分:0)
您必须将标题设置为 false
foreach (var item in mm)
{
Email myM = new Email();
myM.Date = item.Date;
myM.Body = item.Body;