0

I'm getting a System.OutOfMemoryException when I do a Login command on my smtp client. Why would this happen?

flag
It looks strange. Could you please edit your question and include more details such as 1) full exception including the stack trace (you can get it be calling the exception.ToString()). 2) SMTP communication log produced using a LogWriter property as described at rebex.net/kb/logging.aspx ? – Martin Vobr Mar 3 at 21:39
It turned out the attachments you were using were truly massive (like 1GB). Because attachment data was kept in memory, this caused OutOfMemoryException. – Lukas Pokorny May 21 at 13:17

1 Answer

0

It turned out the attachments you were using were truly massive (like 1GB). Because attachment data was kept in memory, this caused OutOfMemoryException sooner or later.

Since Rebex Mail 1.0.3793.0, it is possible to save or send mail messages with attachments of unlimited length using the following code:

// create an e-mail
MailMessage mail = new MailMessage();
...

Attachment attachment = new Attachment();
attachment.Options |= MimeOptions.DoNotPreloadAttachments; // <-- this is new
attachment.SetContentFromFile(attachmentPath);
mail.Attachments.Add(attachment);

// save the e-mail
mail.Save(path);

// send the e-mail
Smtp smtp = new Smtp();
smtp.Connect("server01");
smtp.Options |= SmtpOptions.SendWithNoBuffer; // <-- this is new
smtp.Send(mail);

At the moment, this doesn't work when the e-mail needs to be signed or encrypted – in that case, the content is still read into memory.

link|flag

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.