我正在尝试将电子邮件存储到我的SQL服务器数据库中。我从Exchange Webservices获得的这些电子邮件。
我正在使用实体框架并制作了ADO .Net数据模型。
我的问题是如何制作将这些电子邮件存储到我的数据库中的方法(StoreEmail)。
这是我到目前为止的StoreEmail方法:
它应该存储我的网络钓鱼邮件......
public object StoreMail(Model.PhishingMail PhishingMail)
{
using (var phishingMailStorage = new PhishFinderModel())
{
PhishingMail = MailMapper.Map(Model.PhishingMail);
phishingMailStorage.PhishingMails.Add();
phishingMailStorage.SaveChanges();
return PhishingMail;
}
}
在Mailmapper类中,我设置了我想要存储的属性,即Sender,Subject和Body:
public static PhishingMail Map(EmailMessage OutlookMail)
{
PhishingMail readMail = new PhishingMail();
readMail.Sender = OutlookMail.Sender.Address;
readMail.Body = OutlookMail.Body;
return readMail;
}
为了澄清我的问题,我已经从交换服务器获取电子邮件列表。现在,我需要做的就是将它们插入SQL服务器。
如何让StoreEmail方法正常工作?
请不要苛刻我真的很陌生。感觉就像我在信息的海洋中游泳,我不知道在哪里看或开始。因此,非常欢迎任何建议的教程。
谢谢!
答案 0 :(得分:1)
您正在存储PhishingMail
,而您正在收到PhishingMail
,因此您不需要映射步骤。
这不起作用吗?
public void StoreMail(Model.PhishingMail PhishingMail)
{
using (var phishingMailStorage = new PhishFinderModel())
{
phishingMailStorage.PhishingMails.Add(PhishingMail);
phishingMailStorage.SaveChanges();
}
}
您也不需要返回邮件,因为调用者已经拥有它(如果您没有返回新的/不同的对象,那么返回void
会更加整洁。
如果实际需要存储EmailMessage
,您的方法应为:
public void StoreMail(EmailMessage emailMessage)
{
var phishingMail = MailMapper.Map(emailMessage);
using (var phishingMailStorage = new PhishFinderModel())
{
phishingMailStorage.PhishingMails.Add(phishingMail);
phishingMailStorage.SaveChanges();
}
}