साथ ही साथ SpecifiedPickupDirectory
अन्य उत्तरों की जानकारी, यदि आप यह सुनिश्चित करना चाहते हैं कि आपके ईमेल साइट रूट के सापेक्ष किसी फ़ोल्डर में भेजे गए हैं - बिल्ड सर्वर पर परीक्षण में आसान जहां आप पथ नहीं जानते हैं - आप कर सकते हैं अपना ईमेल कोड भेजने में एक त्वरित जांच जोड़ें:
SmtpClient client = new SmtpClient();
...
// Add "~" support for pickupdirectories.
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;
}
और अपने परीक्षण कुछ इस तरह (सुनिश्चित करें कि आप App_Data उपयोग करती हैं इसलिए आईआईएस फ़ोल्डर में लिख सकते हैं बनाने के) दिखेगा: भी
// Arrange - get SitePath from AppDomain.Current.BaseDirectory + ..\
string pickupPath = Path.Combine(SitePath, "App_Data", "TempSmtp");
if (!Directory.Exists(pickupPath))
Directory.CreateDirectory(pickupPath);
foreach (string file in Directory.GetFiles(pickupPath, "*.eml"))
{
File.Delete(file);
}
// Act (send some emails)
// Assert
Assert.That(Directory.GetFiles(pickupPath, "*.eml").Count(), Is.EqualTo(1));
स्रोत
2012-12-08 16:19:29
"भेजने के बजाय।" – Avram