Как добавить вложение электронной почты из массива байтов?
У меня есть byte[]
с содержимым файла. Я хотел бы отправить его в виде вложения с помощью System.Net.Mail
.
Я заметил, что класс приложения имеет 1 перегрузку, которая принимает поток.
Attachment att = new Attachment(Stream contentStream,string name);
Можно ли передать byte[]
через эту перегрузку?
Ответы
Ответ 1
Простейший способ:
Attachment att = new Attachment(new MemoryStream(bytes), name);
Обратите внимание, что если вы не делаете фанки с асинхронными операциями, MemoryStream
безопасно оставить без изменений, что может облегчить вам жизнь. По общему признанию, нет гарантии, что это будет правдой в будущем, но я думаю, что это вряд ли изменится. Я не вижу никаких указаний относительно того, распоряжается ли распоряжением привязанность к его потоку: (
Ответ 2
Вам нужно преобразовать byte[]
в MemoryStream
с помощью перегрузки MemoryStream.
Attachment att = new Attachment(new MemoryStream(myBytes), name);
Обратите внимание, что параметр имени конструктор вложений указывает имя типа содержимого вложения, а не имя самого вложения.