Меклариан прав, но одна маленькая вещь, на которую следует обратить внимание, это то, что после того, как вы сохранили pdf в своем потоке, вы захотите сбросить позицию своего потока обратно на 0. В противном случае отправленное вложение будет все foo -barred.
(Мне понадобилось около двух часов, чтобы понять это. Ой. Надеюсь помочь кому-нибудь еще сэкономить.)
//Create the pdf doc
Doc theDoc = new Doc();
theDoc.FontSize = 12;
theDoc.AddText("Hello, World!");
//Save it to the Stream
Stream pdf = new MemoryStream();
theDoc.Save(pdf);
theDoc.Clear();
//Important to reset back to the begining of the stream!!!
pdf.Position = 0;
//Send the message
MailMessage msg = new MailMessage();
msg.To.Add("you@you.com");
msg.From = new MailAddress("me@me.com");
msg.Subject = "Hello";
msg.Body = "World";
msg.Attachments.Add(new Attachment(pdf, "MyPDF.pdf", "application/pdf"));
SmtpClient smtp = new SmtpClient("smtp.yourserver.com");
smtp.Send(msg);