2016-01-06 80 views
0

有一个在ASP.NET MVC应用程序的邮件分拣目录:如何自动创建电子邮件提货目录?

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" deliveryMethod="SpecifiedPickupDirectory"> 
     <specifiedPickupDirectory pickupDirectoryLocation="C:/emails"/> 
     <network host="localhost"/> 
     </smtp> 
    </mailSettings> 
</system.net> 

的Web应用程序无法在启动时自动创建的目录c:\emails。它可以很容易地设置它?或者我需要解析web.config并在启动时创建“手动”目录?

回答

2

我不认为有什么“开箱即可”做到这一点 - 但自己做这件事也很容易。

你可以使用这段代码,你可以把它放在例如您的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); 
     } 
    } 
}