Soooo...I needed to get files out of my SQL Server table (which has the files in an image column) and attach them to an email to send out. I honestly thought this would be a no-brainer but turned out it was pretty finicky. Anyway...the code to so is below just in case anyone is wondering.
Function SendEmail()
'Get your data (filename, content type, image column) from the db
Dim dt As DataTable = GetYourStuff()
If dt.Rows.Count <= 0 Then Return Nothing
Dim msg As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()
msg.Subject = "Sample Message"
msg.To.Add(New System.Net.Mail.MailAddress("Receiver@yourDomain.com"))
Dim fromadx As New System.Net.Mail.MailAddress("Sender@yourDomain.com", "Sender Name")
msg.From = fromadx
msg.IsBodyHtml = False
msg.Body = "Sample body..."
Dim strMem As System.IO.MemoryStream = New System.IO.MemoryStream(CType(dt.Rows(0)("ImageColumn"), Byte()))
Dim strWriter As System.IO.StreamWriter = New System.IO.StreamWriter(strMem)
strWriter.Flush()
'this is very important..wont work without it
strMem.Position = 0
'Filename and content type are hardcoded here, but I assume you get them from GetYourStuff() above
Dim attachment As System.Net.Mail.Attachment = New System.Net.Mail.Attachment(strMem, "myFile.txt", "text/plain")
msg.Attachments.Add(attachment)
Dim smtpClient As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient(ConfigurationManager.AppSettings.Item("smtpserver"), 25)
smtpClient.Send(msg)
End Function