Я работаю с Microsoft Visual Studio 2015, и я пытаюсь преобразовать что-то из формы списка в строку. Я нашел некоторые решения для подобных проблем, но не в частности.Получите текст из вложений электронной почты и напишите в файл
Я хотел бы, чтобы в конечном счете, этот код работает:
Dim info As Byte() = New UTF8Encoding(True).GetBytes(Utilities.GetEmailInfo(msg.Message).Attachments)
Мой конец игры, чтобы взять текст с вложениями и записать его в файл. Если я использую некоторые другие типы данных, перечисленные ниже, такие как ToData, файл получается правильно, но я сталкиваюсь с ошибкой с указанным выше кодом, потому что GetBytes не может получить текст из списка. Есть ли другая функция, которую я мог бы использовать, чтобы получить текст из списка?
Класс, который нужно преобразовать содержит следующее:
Public Class EmailInfo
Public FromData As String = vbNullString 'FROM:
Public ToData As String = vbNullString 'TO:
Public DateData As String = vbNullString 'DATE:
Public SubjectData As String = vbNullString 'SUBJECT:
Public MessageBody As EmailItem 'contents of message body
Public AlternateViews As New Collections.Generic.List(Of EmailItem) 'list of alternate views
Public Attachments As New Collections.Generic.List(Of EmailItem) 'list of attachments
End Class
ресурс, который я хочу, чтобы получить доступ в EmailInfo.Attachments. Этот ресурс хранится как список типа EmailItem. Код для этого типа заключается в следующем:
Public Class EmailItem
Public ContentType As String = vbNullString 'CONTENT-TYPE data
Public ContentTypeData As String = vbNullString 'filename or text encoding
Public ContentTypeDataIsFilename As Boolean = False 'True if ContentTypeData specifies a filename
Public ContentEncoding As String = vbNullString 'CONTENT-TRANSFER-ENCODING data
Public ContentBody As String = vbNullString 'raw data of block
End Class
Я попытался с помощью какой-то код, такой как string.join, но я в конечном итоге с пустой строкой.
Прошу простить мое невежество, поскольку я новичок в VB.
Спасибо всем за вашу помощь!
Ryan
Не уверен, что вы делаете, но 'Attachments' представляет собой коллекцию, поэтому, пытаясь записать ее, как куча байтов, не даст способа узнать, где находится один элемент заканчивается, а другой начинается. Это будет просто капля. * Может быть, вы хотите сериализовать его? – Plutonix
Ryan на каждом цикле 'File.AppendAllText' сообщения электронной почты и вложения, чтобы вы знали, где заканчивается один элемент, а другой начинается.Я лично использовал бы базу данных вместо текстового файла, текстовый файл будет расти очень, очень большой, и после его более 5 МБ или около того потребуется много времени для открытия. –
Спасибо @Plutonix, сериализация его работала отлично. Я нахожусь на пути к тому, где я должен быть. Если кому-то интересно, я разрабатываю почтовый клиент, который отображается аналогично IM-клиенту. – user6086585