如何使用“ SpecifiedPickupDirectory”作为传递方法在发送电子邮件的同时在AWS上创建电子邮件文件

时间:2018-12-24 10:08:37

标签: c# .net amazon-s3 smtp smtpclient

当前,我们在所有开发人员机器的.NET应用程序中对电子邮件设置进行以下配置(而仅在生产环境中,我们正在发送物理电子邮件)。

<system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="\\devfilesrv01\Emails" />
        <network host="localhost" />
      </smtp>
    </mailSettings>
</system.net>

现在我们正在淘汰文件存储,并转向AWS S3作为应用程序正在生成的所有文件的存储。

虽然我们可以成功完成大多数过渡,但问题现在出在电子邮件服务上,其中文件生成和存储由配置驱动。

以下是发送电子邮件的代码:

internal static void Send(MailMessage message)
{
    using (var client = CreateSmtpClient())
    {
        client.Send(message);
    }
}

当deliveryMethod为“ SpecifiedPickupDirectory”时,是否有任何方法可以覆盖此过程,以便我可以使用AWS S3 API在S3存储桶中存储生成的文件?

在此方面的任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

不确定是否可以直接将电子邮件存储到s3位置。如果它是可公开访问的,则可以用s3详细信息替换\ devfilesrv01 \ Emails。但是,如果它不是公开的,那么您可能必须首先在临时位置下载并编写代码以将该文件从临时位置移动到s3位置。