ASP.NET MVC应用程序中有一个电子邮件提取目录:
<system.net>
<mailSettings>
<smtp from="no-reply@test.com" deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:/emails"/>
<network host="localhost"/>
</smtp>
</mailSettings>
</system.net>
Web应用程序在启动时不会自动创建目录c:\emails
。可以轻松设置吗?或者我是否需要解析web.config并在启动时“手动”创建目录?
答案 0 :(得分:4)
我认为没有任何“开箱即用”的东西可以做到这一点 - 但是自己做这件事也很容易。
您可以使用此代码段,您可以将其放入例如您的global.asax.cs
文件采用适当的方法之一(例如Application_Start
):
// get the config section <system.net>/<mailSettings>/<smtp>
SmtpSection smtpConfig = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;
if (smtpConfig != null)
{
// if you have DeliveryMethod=SpecifiedPickupDirectory
if(smtpConfig.DeliveryMethod == SmtpDeliveryMethod.SpecifiedPickupDirectory)
{
// read out the configured directory
string pickupDir = smtpConfig.SpecifiedPickupDirectory.PickupDirectoryLocation;
// check if directory exists....
if (!Directory.Exists(pickupDir))
{
// and if not - just create it!
Directory.CreateDirectory(pickupDir);
}
}
}