Azure 中的 SMTP SpecifiedPickupDirectory?
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 sending 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
我正在开发一个 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 sending 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