I'm trying to send and save the send email using C# code. But i can't get this done. I can either save the mail, or send it. But i can't get both done.
This is what i have:
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();
}
So first i try to send the email. That works. Then i'm trying to save the email to my HDD. But it never gets saved. It does work when i don't send out the email and try to save it to my HDD right away. But i need to do both.
Anyone any idea how i can get this done? I just simply need to log the send messages.
Mail messages in the pickup directory are automatically sent by a local SMTP server (if present), such as IIS. (SmtpClient.PickupDirectoryLocation)
If you want to save to file system, you need to set the DeliveryMethod to SmtpDeliveryMethod.SpecifiedPickupDirectory:
client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; 
client.PickupDirectoryLocation = @"C:\Temp"; 
client.Send(message); 
See How to save MailMessage object to disk as *.eml or *.msg file
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With