如何将电子邮件存储到我的 SQL 服务器数据库中?

How do I store emails into my SQL server database?

我正在尝试将电子邮件存储到我的 SQL 服务器数据库中。这些电子邮件是我从 Exchange Webservices 收到的。

我正在使用 entity Framework 并制作了一个 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 class 中,我设置了要存储的属性,即发件人、主题和正文:

      public static PhishingMail Map(EmailMessage OutlookMail)
    {


        PhishingMail readMail = new PhishingMail();

        readMail.Sender = OutlookMail.Sender.Address;
        readMail.Body = OutlookMail.Body;

         return readMail;

  }

这是我的数据库架构

为了澄清我的问题,我已经从交换服务器获得了电子邮件列表。现在,我需要做的就是将它们插入 SQL 服务器。

如何让我的 StoreEmail 方法工作来执行此操作?

请不要苛刻,我对此真的很陌生。感觉就像我在信息的海洋中游泳,我不知道从哪里看或从哪里开始。所以非常欢迎任何建议的教程。

谢谢!

您正在存储 PhishingMail,并且您正在接收 PhishingMail,因此您不需要映射步骤。

这不行吗?

public void StoreMail(Model.PhishingMail PhishingMail)
{
    using (var phishingMailStorage = new PhishFinderModel())
    {
        phishingMailStorage.PhishingMails.Add(PhishingMail);

        phishingMailStorage.SaveChanges();
    }
}

您也不需要 return 邮件,因为来电者已经收到邮件(如果您是 void return不是 returning new/different 对象。

如果你实际上需要存储一个EmailMessage,你的方法应该是:

public void StoreMail(EmailMessage emailMessage)
{
    var phishingMail = MailMapper.Map(emailMessage);
    using (var phishingMailStorage = new PhishFinderModel())
    {
        phishingMailStorage.PhishingMails.Add(phishingMail);

        phishingMailStorage.SaveChanges();
    }
}