繁体   English   中英

SMTP Azure中指定的Pickup目录?

[英]SMTP SpecifiedPickupDirectory in Azure?

我正在开发一个 Episerver CMS 站点,该站点正在迁移到 Episerver DXC,这是他们使用 Azure 的云解决方案。 在站点上使用 web.config 中的 SMTP 配置。 在测试和开发环境中,我们不想意外发送生产邮件。 在当前的测试和开发环境中,我们使用“SpecifiedPickupDirectory”将邮件保存在磁盘上而不是发送它们。 我已经搜索并试图找到如何在 Azure 中进行相同的配置。 但我不知道怎么做。

有可能吗,还是我们必须以另一种方式来做?

当前配置:

 <system.net>
  <mailSettings>
    <smtp from="no-reply@domain.com" deliveryMethod="SpecifiedPickupDirectory" >
      <specifiedPickupDirectory pickupDirectoryLocation="C:\inetpub\mailroot\Pickup" />
      <network host="smtp.domain.com" port="25" defaultCredentials="true" />
    </smtp>
  </mailSettings>
</system.net>

此致

尼克拉斯

不是 Episerver 特定的,但如果您希望将它们存储在磁盘上以用于 Azure 应用程序服务,您可以将pickupDirectoryLocation设置为D:\home\site\wwwroot\App_Data\smtp类的东西。

Config 不支持应用程序相对路径,但如果您愿意,可以按照此处演示的方式以编程方式设置路径: How can I save an email instead of send when using SmtpClient?

TL;DR 代码示例:

var client = new SmtpClient();    

if (client.DeliveryMethod == SmtpDeliveryMethod.SpecifiedPickupDirectory && client.PickupDirectoryLocation.StartsWith("~"))
 {
     string root = AppDomain.CurrentDomain.BaseDirectory;
     string pickupRoot = client.PickupDirectoryLocation.Replace("~/", root);
     pickupRoot = pickupRoot.Replace("/",@"\");
     client.PickupDirectoryLocation = pickupRoot;
 }

 // TODO Send e-mail using client

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM