Как установить красивое имя для вложения электронной почты (System.Net.Mail.SmtpClient) - PullRequest
6 голосов
/ 24 июня 2009

Я отправляю вложения, используя System.Net.Mail.SmtpClient в C #.
Имена вложений совпадают с именами файлов, которые я передаю в конструктор вложений

myMail.Attachments.Add(new Attachment(attachmentFileName));

Как мне установить «красивое» имя для вложения? Имена, которые у меня есть, в основном представляют собой числовые идентификаторы, указывающие, к какому вхождению отчета прикреплен. Мои пользователи ищут что-то более дружелюбное, например "results.xls".

Ответы [ 3 ]

16 голосов
/ 24 июня 2009

См. Свойство Attachment.Name :

Получает или задает значение имени типа содержимого MIME в типе содержимого, связанном с этим вложением.

Вы можете установить для свойства Attachment .Name что угодно. В примере внутри последней ссылки вы можете получить:

// Create  the file attachment for this e-mail message.
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
data.Name = "VeryNiceName.dat"; //(not in original example)
...
message.Attachments.Add(data);
1 голос
/ 24 июня 2009

Сохраните вложение во временную папку с нужным именем, затем прикрепите его. Не забудьте удалить его после отправки электронного письма, чтобы временная папка не стала слишком большой.

Редактировать : Принятый ответ намного лучше, но я оставлю это здесь для других, которые пойдут тем же путем и увидят, насколько он неправильный.

0 голосов
/ 24 июня 2009

You can use this constructor for Attachment
...