2012-08-28 95 views
2

我試圖使用C#代碼發送並保存發送電子郵件。但我無法完成這件事。我可以保存郵件,也可以發送郵件。但我無法完成這兩件事。使用System.Net.Mail保存併發送郵件

這是我有:

public ActionResult Index() 
{ 
    MailMessage message = new MailMessage(); 

    message.From = new MailAddress("[email protected]"); 
    message.To.Add(new MailAddress("[email protected]")); 
    message.Subject = "Test Subject"; 
    message.Body = "This is a test message"; 
    message.IsBodyHtml = true; 

    // Setup SMTP settings 
    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); 
    smtp.EnableSsl = true; 
    NetworkCredential basicCredential = new NetworkCredential("[email protected]", "******"); 

    smtp.UseDefaultCredentials = false; 
    smtp.Credentials = basicCredential; 
    smtp.Send(message); 

    // save 
    smtp.EnableSsl = false; 
    smtp.PickupDirectoryLocation = @"C:\Temp"; 
    smtp.Send(message); 

    return View(); 
} 

所以首先我嘗試發送電子郵件。這樣可行。然後我試圖將電子郵件保存到我的硬盤。但它永遠不會被保存。當我不發送電子郵件並立即將其保存到我的硬盤時,它確實有效。但我需要這樣做。

任何人有任何想法我可以做到這一點?我只需要記錄發送消息。

回答

1

你要更改的屬性DeliveryMethodSmtpDeliveryMethod.SpecifiedPickupDirectorynot不發送電子郵件。

只是改變了PickupDirectoryLocation將無法​​正常工作,因爲當DeliveryMethod設置爲Network(這是默認值)不使用的屬性。

請參閱MSDN

相關問題