У меня есть функция, которая принимает строку и генерирует вложение электронной почты на основе этой строки.Он отлично работает для HTML-страниц, текстовых документов и т. Д., Но я не могу получить его для создания PDF-файла.
Код:
Public Sub SendMail _
( _
ByVal strFrom As String _
, ByVal strTo As String _
, ByVal strSubject As String, ByVal strBody As String _
, Optional ByVal attachment As String = "" _
, Optional ByVal filename As String = "Attachment.HTML" _
)
Dim sendMail As New SmtpClient
Dim mail As New MailMessage(strFrom, strTo)
Dim userToken As New Object
mail.Subject = strSubject
mail.Body = strBody
mail.IsBodyHtml = True
Using MemoryStream = New MemoryStream
If attachment.Length <> 0 Then
Dim data As Byte() = Encoding.ASCII.GetBytes(attachment)
MemoryStream.Write(data, 0, data.Length)
MemoryStream.Seek(0, SeekOrigin.Begin)
MemoryStream.Position = 0
Dim content As New ContentType()
content.MediaType = MediaTypeNames.Application.Octet
content.Name = filename
Dim newAttach As New Attachment(MemoryStream, content)
mail.Attachments.Add(newAttach)
End If
sendMail.DeliveryMethod = SmtpDeliveryMethod.Network
sendMail.Host = "SERVER"
sendMail.UseDefaultCredentials = False
sendMail.Credentials = New System.Net.NetworkCredential("UN", "PW")
sendMail.Send(mail)
End Using
Если я сохраняю вложение файла как Whever.PDF, я получаю сообщение об ошибке, что оно не было правильно закодировано.Не уверен, что мне нужно сделать, чтобы работать с PDF, я попытался найти в Google, но не нашел ничего, что мне помогло.
EDITED :
Я использую динамику данныхактивные отчеты PDF-экспортер для создания PDF
dim pdf as new datadynamics.activereports.export.pdf.pdfexport
sendmail("from@", "to@", "test", "test", pdf.tostring, "pdf.pdf")
Мне кажется, проблема в том, что я преобразовываю PDF в строку, а затем пытаюсь преобразовать его обратно в PDF и прикрепить к электронному письму, но яне уверен на 100%.
Спасибо.